#include "components/domain_reliability/google_configs.h"
#include "net/base/url_util.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace domain_reliability {
namespace {
bool HasSameOriginCollector(const DomainReliabilityConfig* config) {
for (const auto& collector : config->collectors) {
if (collector->GetHost() == config->origin.host()) {
return true;
}
}
return false;
}
TEST(DomainReliabilityGoogleConfigsTest, ConfigsAreValid) {
auto configs = GetAllGoogleConfigsForTesting();
for (const auto& config : configs) {
EXPECT_TRUE(config->IsValid());
}
}
TEST(DomainReliabilityGoogleConfigsTest, MaybeGetGoogleConfig) {
std::string host = "google.ac";
auto config = MaybeGetGoogleConfig(host);
EXPECT_EQ(host, config->origin.host());
EXPECT_TRUE(config->include_subdomains);
EXPECT_TRUE(HasSameOriginCollector(config.get()));
host = "2mdn.net";
config = MaybeGetGoogleConfig(host);
EXPECT_EQ(host, config->origin.host());
EXPECT_TRUE(config->include_subdomains);
EXPECT_FALSE(HasSameOriginCollector(config.get()));
host = "accounts.google.com";
config = MaybeGetGoogleConfig(host);
EXPECT_EQ(host, config->origin.host());
EXPECT_FALSE(config->include_subdomains);
EXPECT_TRUE(HasSameOriginCollector(config.get()));
host = "ad.doubleclick.net";
config = MaybeGetGoogleConfig(host);
EXPECT_EQ(host, config->origin.host());
EXPECT_FALSE(config->include_subdomains);
EXPECT_FALSE(HasSameOriginCollector(config.get()));
}
TEST(DomainReliabilityGoogleConfigsTest, MaybeGetGoogleConfigSubdomains) {
std::string host = "www.google.ac";
auto config = MaybeGetGoogleConfig(host);
EXPECT_EQ(host, config->origin.host());
EXPECT_FALSE(config->include_subdomains);
host = "subdomain.google.ac";
config = MaybeGetGoogleConfig(host);
EXPECT_EQ(net::GetSuperdomain(host), config->origin.host());
EXPECT_TRUE(config->include_subdomains);
host = "www.2mdn.net";
config = MaybeGetGoogleConfig(host);
EXPECT_EQ(net::GetSuperdomain(host), config->origin.host());
EXPECT_TRUE(config->include_subdomains);
host = "subdomain.drive.google.com";
config = MaybeGetGoogleConfig(host);
EXPECT_FALSE(config);
host = "www.drive.google.com";
config = MaybeGetGoogleConfig(host);
EXPECT_FALSE(config);
host = "accounts.google.com";
config = MaybeGetGoogleConfig(host);
EXPECT_EQ(host, config->origin.host());
}
}
}