| Index: components/data_reduction_proxy/core/browser/data_reduction_proxy_test_utils.cc
|
| diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_test_utils.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_test_utils.cc
|
| index e9ea65ee061dfa2742900b986caceec3b973f8ae..aae60c37771330e008cf99364f820c5d47a6fed2 100644
|
| --- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_test_utils.cc
|
| +++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_test_utils.cc
|
| @@ -6,9 +6,11 @@
|
|
|
| #include "base/message_loop/message_loop.h"
|
| #include "base/prefs/testing_pref_service.h"
|
| +#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client.h"
|
| #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_test_utils.h"
|
| #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_interceptor.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_network_delegate.h"
|
| #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_prefs.h"
|
| #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_settings.h"
|
| @@ -26,6 +28,16 @@ namespace {
|
|
|
| const char kTestKey[] = "test-key";
|
|
|
| +const net::BackoffEntry::Policy kTestBackoffPolicy = {
|
| + 0, // num_errors_to_ignore
|
| + 10 * 1000, // initial_delay_ms
|
| + 2, // multiply_factor
|
| + 0, // jitter_factor
|
| + 30 * 60 * 1000, // maximum_backoff_ms
|
| + -1, // entry_lifetime_ms
|
| + true, // always_use_initial_delay
|
| +};
|
| +
|
| } // namespace
|
|
|
| namespace data_reduction_proxy {
|
| @@ -71,6 +83,82 @@ MockDataReductionProxyRequestOptions::MockDataReductionProxyRequestOptions(
|
| MockDataReductionProxyRequestOptions::~MockDataReductionProxyRequestOptions() {
|
| }
|
|
|
| +TestDataReductionProxyConfigServiceClient::
|
| + TestDataReductionProxyConfigServiceClient(
|
| + scoped_ptr<DataReductionProxyParams> params,
|
| + DataReductionProxyRequestOptions* request_options,
|
| + DataReductionProxyMutableConfigValues* config_values,
|
| + DataReductionProxyConfig* config,
|
| + scoped_refptr<base::SingleThreadTaskRunner> io_task_runner)
|
| + : DataReductionProxyConfigServiceClient(params.Pass(),
|
| + kTestBackoffPolicy,
|
| + request_options,
|
| + config_values,
|
| + config,
|
| + io_task_runner),
|
| + tick_clock_(base::Time::UnixEpoch()),
|
| + test_backoff_entry_(&kTestBackoffPolicy, &tick_clock_) {
|
| +}
|
| +
|
| +TestDataReductionProxyConfigServiceClient::
|
| + ~TestDataReductionProxyConfigServiceClient() {
|
| +}
|
| +
|
| +void TestDataReductionProxyConfigServiceClient::SetNow(const base::Time& time) {
|
| + tick_clock_.SetTime(time);
|
| +}
|
| +
|
| +void TestDataReductionProxyConfigServiceClient::SetCustomReleaseTime(
|
| + const base::TimeTicks& release_time) {
|
| + test_backoff_entry_.SetCustomReleaseTime(release_time);
|
| +}
|
| +
|
| +base::TimeDelta TestDataReductionProxyConfigServiceClient::GetDelay() const {
|
| + return config_refresh_timer_.GetCurrentDelay();
|
| +}
|
| +
|
| +base::Time TestDataReductionProxyConfigServiceClient::Now() const {
|
| + return tick_clock_.Now();
|
| +}
|
| +
|
| +net::BackoffEntry*
|
| +TestDataReductionProxyConfigServiceClient::GetBackoffEntry() {
|
| + return &test_backoff_entry_;
|
| +}
|
| +
|
| +TestDataReductionProxyConfigServiceClient::TestTickClock::TestTickClock(
|
| + const base::Time& initial_time)
|
| + : time_(initial_time) {
|
| +}
|
| +
|
| +base::TimeTicks
|
| +TestDataReductionProxyConfigServiceClient::TestTickClock::NowTicks() const {
|
| + return base::TimeTicks::UnixEpoch() + (time_ - base::Time::UnixEpoch());
|
| +}
|
| +
|
| +base::Time
|
| +TestDataReductionProxyConfigServiceClient::TestTickClock::Now() const {
|
| + return time_;
|
| +}
|
| +
|
| +void TestDataReductionProxyConfigServiceClient::TestTickClock::SetTime(
|
| + const base::Time& time) {
|
| + time_ = time;
|
| +}
|
| +
|
| +TestDataReductionProxyConfigServiceClient::TestBackoffEntry::TestBackoffEntry(
|
| + const net::BackoffEntry::Policy* const policy,
|
| + const TestTickClock* tick_clock)
|
| + : net::BackoffEntry(policy),
|
| + tick_clock_(tick_clock) {
|
| +}
|
| +
|
| +base::TimeTicks
|
| +TestDataReductionProxyConfigServiceClient::TestBackoffEntry::ImplGetTimeNow()
|
| + const {
|
| + return tick_clock_->NowTicks();
|
| +}
|
| +
|
| MockDataReductionProxyService::MockDataReductionProxyService(
|
| scoped_ptr<DataReductionProxyStatisticsPrefs> statistics_prefs,
|
| DataReductionProxySettings* settings,
|
| @@ -84,10 +172,11 @@ MockDataReductionProxyService::~MockDataReductionProxyService() {
|
|
|
| TestDataReductionProxyIOData::TestDataReductionProxyIOData(
|
| scoped_refptr<base::SingleThreadTaskRunner> task_runner,
|
| - scoped_ptr<TestDataReductionProxyConfig> config,
|
| + scoped_ptr<DataReductionProxyConfig> config,
|
| scoped_ptr<DataReductionProxyEventStore> event_store,
|
| scoped_ptr<DataReductionProxyRequestOptions> request_options,
|
| - scoped_ptr<DataReductionProxyConfigurator> configurator)
|
| + scoped_ptr<DataReductionProxyConfigurator> configurator,
|
| + scoped_ptr<DataReductionProxyConfigServiceClient> config_client)
|
| : DataReductionProxyIOData() {
|
| io_task_runner_ = task_runner;
|
| ui_task_runner_ = task_runner;
|
| @@ -95,6 +184,7 @@ TestDataReductionProxyIOData::TestDataReductionProxyIOData(
|
| event_store_ = event_store.Pass();
|
| request_options_ = request_options.Pass();
|
| configurator_ = configurator.Pass();
|
| + config_client_ = config_client.Pass();
|
| io_task_runner_ = task_runner;
|
| ui_task_runner_ = task_runner;
|
| }
|
| @@ -113,6 +203,8 @@ DataReductionProxyTestContext::Builder::Builder()
|
| use_test_configurator_(false),
|
| use_mock_service_(false),
|
| use_mock_request_options_(false),
|
| + use_config_client_(false),
|
| + use_test_config_client_(false),
|
| skip_settings_initialization_(false) {
|
| }
|
|
|
| @@ -174,6 +266,19 @@ DataReductionProxyTestContext::Builder::WithMockRequestOptions() {
|
| }
|
|
|
| DataReductionProxyTestContext::Builder&
|
| +DataReductionProxyTestContext::Builder::WithConfigClient() {
|
| + use_config_client_ = true;
|
| + return *this;
|
| +}
|
| +
|
| +DataReductionProxyTestContext::Builder&
|
| +DataReductionProxyTestContext::Builder::WithTestConfigClient() {
|
| + use_config_client_ = true;
|
| + use_test_config_client_ = true;
|
| + return *this;
|
| +}
|
| +
|
| +DataReductionProxyTestContext::Builder&
|
| DataReductionProxyTestContext::Builder::SkipSettingsInitialization() {
|
| skip_settings_initialization_ = true;
|
| return *this;
|
| @@ -181,6 +286,8 @@ DataReductionProxyTestContext::Builder::SkipSettingsInitialization() {
|
|
|
| scoped_ptr<DataReductionProxyTestContext>
|
| DataReductionProxyTestContext::Builder::Build() {
|
| + // Check for invalid builder combinations.
|
| + DCHECK(!(use_mock_config_ && use_config_client_));
|
| scoped_ptr<base::MessageLoopForIO> loop(new base::MessageLoopForIO());
|
|
|
| unsigned int test_context_flags = 0;
|
| @@ -216,15 +323,29 @@ DataReductionProxyTestContext::Builder::Build() {
|
| }
|
|
|
| scoped_ptr<TestDataReductionProxyConfig> config;
|
| - if (use_mock_config_) {
|
| + scoped_ptr<DataReductionProxyConfigServiceClient> config_client;
|
| + DataReductionProxyMutableConfigValues* raw_mutable_config = nullptr;
|
| + scoped_ptr<TestDataReductionProxyParams> params(
|
| + new TestDataReductionProxyParams(params_flags_, params_definitions_));
|
| + TestDataReductionProxyParams* raw_params = params.get();
|
| + if (use_config_client_) {
|
| + test_context_flags |= USE_CONFIG_CLIENT;
|
| + scoped_ptr<DataReductionProxyMutableConfigValues> mutable_config =
|
| + DataReductionProxyMutableConfigValues::CreateFromParams(task_runner,
|
| + params.get());
|
| + raw_mutable_config = mutable_config.get();
|
| + config.reset(new TestDataReductionProxyConfig(
|
| + mutable_config.Pass(), task_runner, net_log.get(), configurator.get(),
|
| + event_store.get()));
|
| + } else if (use_mock_config_) {
|
| test_context_flags |= USE_MOCK_CONFIG;
|
| config.reset(new MockDataReductionProxyConfig(
|
| - params_flags_, params_definitions_, task_runner, net_log.get(),
|
| - configurator.get(), event_store.get()));
|
| + params.Pass(), task_runner, net_log.get(), configurator.get(),
|
| + event_store.get()));
|
| } else {
|
| config.reset(new TestDataReductionProxyConfig(
|
| - params_flags_, params_definitions_, task_runner, net_log.get(),
|
| - configurator.get(), event_store.get()));
|
| + params.Pass(), task_runner, net_log.get(), configurator.get(),
|
| + event_store.get()));
|
| }
|
|
|
| scoped_ptr<DataReductionProxyRequestOptions> request_options;
|
| @@ -237,6 +358,17 @@ DataReductionProxyTestContext::Builder::Build() {
|
| client_, config.get(), task_runner));
|
| }
|
|
|
| + if (use_test_config_client_) {
|
| + test_context_flags |= USE_TEST_CONFIG_CLIENT;
|
| + config_client.reset(new TestDataReductionProxyConfigServiceClient(
|
| + params.Pass(), request_options.get(), raw_mutable_config, config.get(),
|
| + task_runner));
|
| + } else if (use_config_client_) {
|
| + config_client.reset(new DataReductionProxyConfigServiceClient(
|
| + params.Pass(), GetBackoffPolicy(), request_options.get(),
|
| + raw_mutable_config, config.get(), task_runner));
|
| + }
|
| +
|
| scoped_ptr<DataReductionProxySettings> settings(
|
| new DataReductionProxySettings());
|
| if (skip_settings_initialization_)
|
| @@ -250,14 +382,14 @@ DataReductionProxyTestContext::Builder::Build() {
|
| scoped_ptr<TestDataReductionProxyIOData> io_data(
|
| new TestDataReductionProxyIOData(
|
| task_runner, config.Pass(), event_store.Pass(),
|
| - request_options.Pass(), configurator.Pass()));
|
| + request_options.Pass(), configurator.Pass(), config_client.Pass()));
|
| io_data->InitOnUIThread(pref_service.get());
|
|
|
| scoped_ptr<DataReductionProxyTestContext> test_context(
|
| new DataReductionProxyTestContext(
|
| loop.Pass(), task_runner, pref_service.Pass(), net_log.Pass(),
|
| request_context_getter, mock_socket_factory_, io_data.Pass(),
|
| - settings.Pass(), test_context_flags));
|
| + settings.Pass(), raw_params, test_context_flags));
|
|
|
| if (!skip_settings_initialization_)
|
| test_context->InitSettingsWithoutCheck();
|
| @@ -274,6 +406,7 @@ DataReductionProxyTestContext::DataReductionProxyTestContext(
|
| net::MockClientSocketFactory* mock_socket_factory,
|
| scoped_ptr<TestDataReductionProxyIOData> io_data,
|
| scoped_ptr<DataReductionProxySettings> settings,
|
| + TestDataReductionProxyParams* params,
|
| unsigned int test_context_flags)
|
| : test_context_flags_(test_context_flags),
|
| loop_(loop.Pass()),
|
| @@ -283,7 +416,8 @@ DataReductionProxyTestContext::DataReductionProxyTestContext(
|
| request_context_getter_(request_context_getter),
|
| mock_socket_factory_(mock_socket_factory),
|
| io_data_(io_data.Pass()),
|
| - settings_(settings.Pass()) {
|
| + settings_(settings.Pass()),
|
| + params_(params) {
|
| }
|
|
|
| DataReductionProxyTestContext::~DataReductionProxyTestContext() {
|
| @@ -413,6 +547,26 @@ DataReductionProxyTestContext::mock_request_options() const {
|
| io_data_->request_options());
|
| }
|
|
|
| +TestDataReductionProxyConfig* DataReductionProxyTestContext::config() const {
|
| + return reinterpret_cast<TestDataReductionProxyConfig*>(io_data_->config());
|
| +}
|
| +
|
| +DataReductionProxyMutableConfigValues*
|
| +DataReductionProxyTestContext::mutable_config_values() {
|
| + DCHECK(test_context_flags_ &
|
| + DataReductionProxyTestContext::USE_CONFIG_CLIENT);
|
| + return reinterpret_cast<DataReductionProxyMutableConfigValues*>(
|
| + config()->config_values());
|
| +}
|
| +
|
| +TestDataReductionProxyConfigServiceClient*
|
| +DataReductionProxyTestContext::test_config_client() {
|
| + DCHECK(test_context_flags_ &
|
| + DataReductionProxyTestContext::USE_TEST_CONFIG_CLIENT);
|
| + return reinterpret_cast<TestDataReductionProxyConfigServiceClient*>(
|
| + io_data_->config_client());
|
| +}
|
| +
|
| DataReductionProxyUsageStats::UnreachableCallback
|
| DataReductionProxyTestContext::unreachable_callback() const {
|
| return base::Bind(&DataReductionProxySettings::SetUnreachable,
|
|
|