blob: e320c8652229d6c83f747632959540f75af73b95 [file] [log] [blame]
// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/enterprise/connectors/service_provider_config.h"
#include "base/files/file_path.h"
#include "base/json/json_reader.h"
#include "chrome/browser/enterprise/connectors/connectors_service.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace enterprise_connectors {
namespace {
constexpr size_t kMaxFileSize = 50 * 1024 * 1024;
} // namespace
TEST(ServiceProviderConfigTest, Google) {
const ServiceProviderConfig* config = GetServiceProviderConfig();
ASSERT_TRUE(config->count("google"));
ServiceProvider service_provider = config->at("google");
ASSERT_TRUE(service_provider.analysis);
ASSERT_TRUE(service_provider.reporting);
ASSERT_EQ("https://safebrowsing.google.com/safebrowsing/uploads/scan",
std::string(service_provider.analysis->url));
ASSERT_TRUE(GURL(service_provider.analysis->url).is_valid());
ASSERT_EQ("https://chromereporting-pa.googleapis.com/v1/events",
std::string(service_provider.reporting->url));
ASSERT_TRUE(GURL(service_provider.reporting->url).is_valid());
// The Google service provider has 2 tags: malware and dlp.
ASSERT_EQ(service_provider.analysis->supported_tags.size(), 2u);
ASSERT_EQ(std::string(service_provider.analysis->supported_tags[0].name),
"malware");
ASSERT_EQ(service_provider.analysis->supported_tags[0].max_file_size,
kMaxFileSize);
ASSERT_EQ(std::string(service_provider.analysis->supported_tags[1].name),
"dlp");
ASSERT_EQ(service_provider.analysis->supported_tags[1].max_file_size,
kMaxFileSize);
}
TEST(ServiceProviderConfigTest, LocalTest1) {
const ServiceProviderConfig* config = GetServiceProviderConfig();
ASSERT_TRUE(config->count("local_user_agent"));
ServiceProvider service_provider = config->at("local_user_agent");
ASSERT_TRUE(service_provider.analysis);
ASSERT_FALSE(service_provider.reporting);
ASSERT_FALSE(service_provider.analysis->url);
ASSERT_TRUE(service_provider.analysis->local_path);
ASSERT_EQ("path_user", std::string(service_provider.analysis->local_path));
ASSERT_TRUE(service_provider.analysis->user_specific);
// The test local service provider has 1 tag: dlp.
ASSERT_EQ(service_provider.analysis->supported_tags.size(), 1u);
ASSERT_EQ(std::string(service_provider.analysis->supported_tags[0].name),
"dlp");
ASSERT_EQ(service_provider.analysis->supported_tags[0].max_file_size,
kMaxFileSize);
}
TEST(ServiceProviderConfigTest, LocalTest2) {
const ServiceProviderConfig* config = GetServiceProviderConfig();
ASSERT_TRUE(config->count("local_system_agent"));
ServiceProvider service_provider = config->at("local_system_agent");
ASSERT_TRUE(service_provider.analysis);
ASSERT_FALSE(service_provider.reporting);
ASSERT_FALSE(service_provider.analysis->url);
ASSERT_TRUE(service_provider.analysis->local_path);
ASSERT_EQ("path_system", std::string(service_provider.analysis->local_path));
ASSERT_FALSE(service_provider.analysis->user_specific);
// The test local service provider has 1 tag: dlp.
ASSERT_EQ(service_provider.analysis->supported_tags.size(), 1u);
ASSERT_EQ(std::string(service_provider.analysis->supported_tags[0].name),
"dlp");
ASSERT_EQ(service_provider.analysis->supported_tags[0].max_file_size,
kMaxFileSize);
}
TEST(ServiceProviderConfigTest, BrcmChrmCas) {
const ServiceProviderConfig* config = GetServiceProviderConfig();
ASSERT_TRUE(config->count("brcm_chrm_cas"));
ServiceProvider service_provider = config->at("brcm_chrm_cas");
ASSERT_TRUE(service_provider.analysis);
ASSERT_FALSE(service_provider.reporting);
ASSERT_FALSE(service_provider.analysis->url);
ASSERT_TRUE(service_provider.analysis->local_path);
ASSERT_EQ("brcm_chrm_cas",
std::string(service_provider.analysis->local_path));
ASSERT_FALSE(service_provider.analysis->user_specific);
ASSERT_EQ(service_provider.analysis->subject_names.size(), 1u);
ASSERT_EQ(std::string(service_provider.analysis->subject_names[0]),
"Broadcom Inc");
// The BrcmChrmCas local service provider has 1 tag: dlp.
ASSERT_EQ(service_provider.analysis->supported_tags.size(), 1u);
ASSERT_EQ(std::string(service_provider.analysis->supported_tags[0].name),
"dlp");
ASSERT_EQ(service_provider.analysis->supported_tags[0].max_file_size,
kMaxFileSize);
}
} // namespace enterprise_connectors