| Index: components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client_unittest.cc
|
| diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client_unittest.cc
|
| index bb979db5db6ef52389a12a6dca00709d3fb45733..97a837532429e38a914a838732590165603eaa07 100644
|
| --- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client_unittest.cc
|
| +++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client_unittest.cc
|
| @@ -22,10 +22,12 @@
|
| #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_config_test_utils.h"
|
| #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_configurator.h"
|
| #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.h"
|
| +#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_mutable_config_values.h"
|
| #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_test_utils.h"
|
| #include "components/data_reduction_proxy/core/common/data_reduction_proxy_params.h"
|
| #include "components/data_reduction_proxy/core/common/data_reduction_proxy_params_test_utils.h"
|
| #include "components/data_reduction_proxy/core/common/data_reduction_proxy_pref_names.h"
|
| +#include "components/data_reduction_proxy/core/common/data_reduction_proxy_server.h"
|
| #include "components/data_reduction_proxy/core/common/data_reduction_proxy_switches.h"
|
| #include "components/data_reduction_proxy/proto/client_config.pb.h"
|
| #include "net/base/network_change_notifier.h"
|
| @@ -81,9 +83,11 @@ ClientConfig CreateConfig(const std::string& session_key,
|
| ProxyServer_ProxyScheme primary_scheme,
|
| const std::string& primary_host,
|
| int primary_port,
|
| + const ProxyServer_ProxyType& primary_proxy_type,
|
| ProxyServer_ProxyScheme secondary_scheme,
|
| const std::string& secondary_host,
|
| int secondary_port,
|
| + const ProxyServer_ProxyType& secondary_proxy_type,
|
| float reporting_fraction) {
|
| ClientConfig config;
|
|
|
| @@ -102,11 +106,14 @@ ClientConfig CreateConfig(const std::string& session_key,
|
| primary_proxy->set_scheme(primary_scheme);
|
| primary_proxy->set_host(primary_host);
|
| primary_proxy->set_port(primary_port);
|
| + primary_proxy->set_type(primary_proxy_type);
|
| +
|
| ProxyServer* secondary_proxy =
|
| config.mutable_proxy_config()->add_http_proxy_servers();
|
| secondary_proxy->set_scheme(secondary_scheme);
|
| secondary_proxy->set_host(secondary_host);
|
| secondary_proxy->set_port(secondary_port);
|
| + secondary_proxy->set_type(secondary_proxy_type);
|
|
|
| return config;
|
| }
|
| @@ -162,33 +169,38 @@ class DataReductionProxyConfigServiceClientTest : public testing::Test {
|
| ClientConfig config =
|
| CreateConfig(kSuccessSessionKey, kConfigRefreshDurationSeconds, 0,
|
| ProxyServer_ProxyScheme_HTTPS, "origin.net", 443,
|
| - ProxyServer_ProxyScheme_HTTP, "fallback.net", 80, 0.5f);
|
| + ProxyServer::CORE, ProxyServer_ProxyScheme_HTTP,
|
| + "fallback.net", 80, ProxyServer::UNSPECIFIED_TYPE, 0.5f);
|
| config.SerializeToString(&config_);
|
| encoded_config_ = EncodeConfig(config);
|
|
|
| ClientConfig previous_config = CreateConfig(
|
| kOldSuccessSessionKey, kConfigRefreshDurationSeconds, 0,
|
| - ProxyServer_ProxyScheme_HTTPS, "old.origin.net", 443,
|
| - ProxyServer_ProxyScheme_HTTP, "old.fallback.net", 80, 0.0f);
|
| + ProxyServer_ProxyScheme_HTTPS, "old.origin.net", 443, ProxyServer::CORE,
|
| + ProxyServer_ProxyScheme_HTTP, "old.fallback.net", 80,
|
| + ProxyServer::UNSPECIFIED_TYPE, 0.0f);
|
| previous_config.SerializeToString(&previous_config_);
|
|
|
| ClientConfig persisted =
|
| CreateConfig(kPersistedSessionKey, kConfigRefreshDurationSeconds, 0,
|
| ProxyServer_ProxyScheme_HTTPS, "persisted.net", 443,
|
| - ProxyServer_ProxyScheme_HTTP, "persisted.net", 80, 0.0f);
|
| + ProxyServer::CORE, ProxyServer_ProxyScheme_HTTP,
|
| + "persisted.net", 80, ProxyServer::UNSPECIFIED_TYPE, 0.0f);
|
| loaded_config_ = EncodeConfig(persisted);
|
|
|
| ClientConfig zero_reporting_fraction_config =
|
| CreateConfig(kSuccessSessionKey, kConfigRefreshDurationSeconds, 0,
|
| ProxyServer_ProxyScheme_HTTPS, "origin.net", 443,
|
| - ProxyServer_ProxyScheme_HTTP, "origin.net", 0, 0.0f);
|
| + ProxyServer::CORE, ProxyServer_ProxyScheme_HTTP,
|
| + "origin.net", 0, ProxyServer::UNSPECIFIED_TYPE, 0.0f);
|
| zero_reporting_fraction_encoded_config_ =
|
| EncodeConfig(zero_reporting_fraction_config);
|
|
|
| ClientConfig one_reporting_fraction_config =
|
| CreateConfig(kSuccessSessionKey, kConfigRefreshDurationSeconds, 0,
|
| - ProxyServer_ProxyScheme_HTTPS, "", 443,
|
| - ProxyServer_ProxyScheme_HTTP, "", 0, 1.0f);
|
| + ProxyServer_ProxyScheme_HTTPS, "", 443, ProxyServer::CORE,
|
| + ProxyServer_ProxyScheme_HTTP, "", 0,
|
| + ProxyServer::UNSPECIFIED_TYPE, 1.0f);
|
| one_reporting_fraction_encoded_config_ =
|
| EncodeConfig(one_reporting_fraction_config);
|
|
|
| @@ -198,14 +210,16 @@ class DataReductionProxyConfigServiceClientTest : public testing::Test {
|
| ClientConfig empty_reporting_fraction_config =
|
| CreateConfig(kSuccessSessionKey, kConfigRefreshDurationSeconds, 0,
|
| ProxyServer_ProxyScheme_HTTPS, "origin.net", 443,
|
| - ProxyServer_ProxyScheme_HTTP, "origin.net", 0, -1.0f);
|
| + ProxyServer::CORE, ProxyServer_ProxyScheme_HTTP,
|
| + "origin.net", 0, ProxyServer::UNSPECIFIED_TYPE, -1.0f);
|
| empty_reporting_fraction_encoded_config_ =
|
| EncodeConfig(empty_reporting_fraction_config);
|
|
|
| ClientConfig half_reporting_fraction_config =
|
| CreateConfig(kSuccessSessionKey, kConfigRefreshDurationSeconds, 0,
|
| ProxyServer_ProxyScheme_HTTPS, "origin.net", 443,
|
| - ProxyServer_ProxyScheme_HTTP, "origin.net", 0, 0.5f);
|
| + ProxyServer::CORE, ProxyServer_ProxyScheme_HTTP,
|
| + "origin.net", 0, ProxyServer::UNSPECIFIED_TYPE, 0.5f);
|
| half_reporting_fraction_encoded_config_ =
|
| EncodeConfig(half_reporting_fraction_config);
|
|
|
| @@ -233,44 +247,112 @@ class DataReductionProxyConfigServiceClientTest : public testing::Test {
|
| }
|
|
|
| void VerifyRemoteSuccess(bool expect_secure_proxies) {
|
| - std::vector<net::ProxyServer> expected_http_proxies;
|
| + std::vector<DataReductionProxyServer> expected_http_proxies;
|
| if (expect_secure_proxies) {
|
| - expected_http_proxies.push_back(net::ProxyServer::FromURI(
|
| - kSuccessOrigin, net::ProxyServer::SCHEME_HTTP));
|
| + expected_http_proxies.push_back(DataReductionProxyServer(
|
| + net::ProxyServer::FromURI(kSuccessOrigin,
|
| + net::ProxyServer::SCHEME_HTTP),
|
| + ProxyServer::CORE));
|
| }
|
| - expected_http_proxies.push_back(net::ProxyServer::FromURI(
|
| - kSuccessFallback, net::ProxyServer::SCHEME_HTTP));
|
| + expected_http_proxies.push_back(DataReductionProxyServer(
|
| + net::ProxyServer::FromURI(kSuccessFallback,
|
| + net::ProxyServer::SCHEME_HTTP),
|
| + ProxyServer::UNSPECIFIED_TYPE));
|
| +
|
| EXPECT_EQ(base::TimeDelta::FromSeconds(kConfigRefreshDurationSeconds),
|
| config_client()->GetDelay());
|
| - EXPECT_EQ(expected_http_proxies, GetConfiguredProxiesForHttp());
|
| + EXPECT_EQ(DataReductionProxyServer::ConvertToNetProxyServers(
|
| + expected_http_proxies),
|
| + GetConfiguredProxiesForHttp());
|
| EXPECT_EQ(kSuccessSessionKey, request_options()->GetSecureSession());
|
| // The config should be persisted on the pref.
|
| EXPECT_EQ(encoded_config(), persisted_config());
|
| EXPECT_EQ(0.5f, pingback_reporting_fraction());
|
| +
|
| + // Verify that the data reduction proxy servers are correctly set.
|
| + // The first proxy must have type CORE. The second proxy must have type
|
| + // UNSPECIFIED_TYPE since these are the types specified in the encoded
|
| + // configs.
|
| + ASSERT_EQ(
|
| + 2U, test_context_->mutable_config_values()->proxies_for_http().size());
|
| + EXPECT_EQ(ProxyServer::CORE, test_context_->mutable_config_values()
|
| + ->proxies_for_http()
|
| + .at(0)
|
| + .GetProxyTypeForTesting());
|
| + EXPECT_EQ(ProxyServer::UNSPECIFIED_TYPE,
|
| + test_context_->mutable_config_values()
|
| + ->proxies_for_http()
|
| + .at(1)
|
| + .GetProxyTypeForTesting());
|
| }
|
|
|
| void VerifyRemoteSuccessWithOldConfig() {
|
| - std::vector<net::ProxyServer> expected_http_proxies;
|
| - expected_http_proxies.push_back(net::ProxyServer::FromURI(
|
| - kOldSuccessOrigin, net::ProxyServer::SCHEME_HTTP));
|
| - expected_http_proxies.push_back(net::ProxyServer::FromURI(
|
| - kOldSuccessFallback, net::ProxyServer::SCHEME_HTTP));
|
| + std::vector<DataReductionProxyServer> expected_http_proxies;
|
| + expected_http_proxies.push_back(DataReductionProxyServer(
|
| + net::ProxyServer::FromURI(kOldSuccessOrigin,
|
| + net::ProxyServer::SCHEME_HTTP),
|
| + ProxyServer::CORE));
|
| + expected_http_proxies.push_back(DataReductionProxyServer(
|
| + net::ProxyServer::FromURI(kOldSuccessFallback,
|
| + net::ProxyServer::SCHEME_HTTP),
|
| + ProxyServer::UNSPECIFIED_TYPE));
|
| +
|
| EXPECT_EQ(base::TimeDelta::FromSeconds(kConfigRefreshDurationSeconds),
|
| config_client()->GetDelay());
|
| - EXPECT_EQ(expected_http_proxies, GetConfiguredProxiesForHttp());
|
| + EXPECT_EQ(DataReductionProxyServer::ConvertToNetProxyServers(
|
| + expected_http_proxies),
|
| + GetConfiguredProxiesForHttp());
|
| EXPECT_EQ(kOldSuccessSessionKey, request_options()->GetSecureSession());
|
| +
|
| + // Verify that the data reduction proxy servers are correctly set.
|
| + // The first proxy must have type CORE. The second proxy must have type
|
| + // UNSPECIFIED_TYPE since these are the types specified in the encoded
|
| + // configs.
|
| + ASSERT_EQ(
|
| + 2U, test_context_->mutable_config_values()->proxies_for_http().size());
|
| + EXPECT_EQ(ProxyServer::CORE, test_context_->mutable_config_values()
|
| + ->proxies_for_http()
|
| + .at(0)
|
| + .GetProxyTypeForTesting());
|
| + EXPECT_EQ(ProxyServer::UNSPECIFIED_TYPE,
|
| + test_context_->mutable_config_values()
|
| + ->proxies_for_http()
|
| + .at(1)
|
| + .GetProxyTypeForTesting());
|
| }
|
|
|
| void VerifySuccessWithLoadedConfig(bool expect_secure_proxies) {
|
| - std::vector<net::ProxyServer> expected_http_proxies;
|
| + std::vector<DataReductionProxyServer> expected_http_proxies;
|
| if (expect_secure_proxies) {
|
| - expected_http_proxies.push_back(net::ProxyServer::FromURI(
|
| - kPersistedOrigin, net::ProxyServer::SCHEME_HTTP));
|
| + expected_http_proxies.push_back(DataReductionProxyServer(
|
| + net::ProxyServer::FromURI(kPersistedOrigin,
|
| + net::ProxyServer::SCHEME_HTTP),
|
| + ProxyServer::CORE));
|
| }
|
| - expected_http_proxies.push_back(net::ProxyServer::FromURI(
|
| - kPersistedFallback, net::ProxyServer::SCHEME_HTTP));
|
| - EXPECT_EQ(expected_http_proxies, GetConfiguredProxiesForHttp());
|
| + expected_http_proxies.push_back(DataReductionProxyServer(
|
| + net::ProxyServer::FromURI(kPersistedFallback,
|
| + net::ProxyServer::SCHEME_HTTP),
|
| + ProxyServer::UNSPECIFIED_TYPE));
|
| + EXPECT_EQ(DataReductionProxyServer::ConvertToNetProxyServers(
|
| + expected_http_proxies),
|
| + GetConfiguredProxiesForHttp());
|
| EXPECT_EQ(kPersistedSessionKey, request_options()->GetSecureSession());
|
| +
|
| + // Verify that the data reduction proxy servers are correctly set.
|
| + // The first proxy must have type CORE. The second proxy must have type
|
| + // UNSPECIFIED_TYPE since these are the types specified in the encoded
|
| + // configs.
|
| + ASSERT_EQ(
|
| + 2U, test_context_->mutable_config_values()->proxies_for_http().size());
|
| + EXPECT_EQ(ProxyServer::CORE, test_context_->mutable_config_values()
|
| + ->proxies_for_http()
|
| + .at(0)
|
| + .GetProxyTypeForTesting());
|
| + EXPECT_EQ(ProxyServer::UNSPECIFIED_TYPE,
|
| + test_context_->mutable_config_values()
|
| + ->proxies_for_http()
|
| + .at(1)
|
| + .GetProxyTypeForTesting());
|
| }
|
|
|
| TestDataReductionProxyConfigServiceClient* config_client() {
|
|
|