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

Unified Diff: components/data_reduction_proxy/core/browser/data_reduction_proxy_test_utils.cc

Issue 959913002: Create fluent Builder for DataReductionProxyTestContext. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: sclittle CR comments + 1 unittest cleanup Created 5 years, 10 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
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 8ec2958e3b260b77b179dafbf50ccf5b4803f91b..d688d76ae55d75b278c5306d94e3ec689dee8a81 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
@@ -51,77 +51,160 @@ TestDataReductionProxyIOData::~TestDataReductionProxyIOData() {
shutdown_on_ui_ = true;
}
-DataReductionProxyTestContext::DataReductionProxyTestContext(
- int params_flags,
- unsigned int params_definitions,
- unsigned int test_context_flags,
- net::URLRequestContext* request_context)
- : test_context_flags_(test_context_flags),
- task_runner_(base::MessageLoopProxy::current()),
- request_context_getter_(scoped_refptr<net::URLRequestContextGetter>(
- new net::TrivialURLRequestContextGetter(request_context,
- task_runner_))) {
- Init(params_flags, params_definitions);
+DataReductionProxyTestContext::Builder::Builder()
+ : params_flags_(0),
+ params_definitions_(0),
+ client_(Client::UNKNOWN),
+ request_context_(nullptr),
+ use_mock_config_(false),
+ use_test_configurator_(false),
+ use_mock_service_(false),
+ skip_settings_initialization_(false) {
}
-DataReductionProxyTestContext::DataReductionProxyTestContext(
- int params_flags,
- unsigned int params_definitions,
- unsigned int test_context_flags)
- : test_context_flags_(test_context_flags),
- task_runner_(base::MessageLoopProxy::current()),
- request_context_getter_(scoped_refptr<net::URLRequestContextGetter>(
- new net::TestURLRequestContextGetter(task_runner_))) {
- Init(params_flags, params_definitions);
+DataReductionProxyTestContext::Builder&
+DataReductionProxyTestContext::Builder::WithParamsFlags(int params_flags) {
+ params_flags_ = params_flags;
+ return *this;
}
-DataReductionProxyTestContext::~DataReductionProxyTestContext() {
+DataReductionProxyTestContext::Builder&
+DataReductionProxyTestContext::Builder::WithParamsDefinitions(
+ unsigned int params_definitions) {
+ params_definitions_ = params_definitions;
+ return *this;
}
-void DataReductionProxyTestContext::Init(int params_flags,
- unsigned int params_definitions) {
- scoped_ptr<DataReductionProxyEventStore> event_store =
- make_scoped_ptr(new DataReductionProxyEventStore(task_runner_));
+DataReductionProxyTestContext::Builder&
+DataReductionProxyTestContext::Builder::WithURLRequestContext(
+ net::URLRequestContext* request_context) {
+ request_context_ = request_context;
+ return *this;
+}
+
+DataReductionProxyTestContext::Builder&
+DataReductionProxyTestContext::Builder::WithClient(Client client) {
+ client_ = client;
+ return *this;
+}
+
+DataReductionProxyTestContext::Builder&
+DataReductionProxyTestContext::Builder::WithMockConfig() {
+ use_mock_config_ = true;
+ return *this;
+}
+
+DataReductionProxyTestContext::Builder&
+DataReductionProxyTestContext::Builder::WithTestConfigurator() {
+ use_test_configurator_ = true;
+ return *this;
+}
+
+DataReductionProxyTestContext::Builder&
+DataReductionProxyTestContext::Builder::WithMockDataReductionProxyService() {
+ use_mock_service_ = true;
+ return *this;
+}
+
+DataReductionProxyTestContext::Builder&
+DataReductionProxyTestContext::Builder::SkipSettingsInitialization() {
+ skip_settings_initialization_ = true;
+ return *this;
+}
+
+scoped_ptr<DataReductionProxyTestContext>
+DataReductionProxyTestContext::Builder::Build() {
+ scoped_ptr<base::MessageLoopForIO> loop(new base::MessageLoopForIO());
+
+ unsigned int test_context_flags = 0;
+ scoped_refptr<base::SingleThreadTaskRunner> task_runner =
+ base::MessageLoopProxy::current();
+ scoped_refptr<net::URLRequestContextGetter> request_context_getter;
+ scoped_ptr<TestingPrefServiceSimple> pref_service(
+ new TestingPrefServiceSimple());
+ scoped_ptr<net::CapturingNetLog> net_log(new net::CapturingNetLog());
+ if (request_context_) {
+ request_context_getter = new net::TrivialURLRequestContextGetter(
+ request_context_, task_runner);
+ } else {
+ request_context_getter = new net::TestURLRequestContextGetter(task_runner);
+ }
+
+ scoped_ptr<DataReductionProxyEventStore> event_store(
+ new DataReductionProxyEventStore(task_runner));
scoped_ptr<DataReductionProxyConfigurator> configurator;
- if (test_context_flags_ &
- DataReductionProxyTestContext::USE_TEST_CONFIGURATOR) {
- configurator = make_scoped_ptr(new TestDataReductionProxyConfigurator(
- task_runner_, &net_log_, event_store.get()));
+ if (use_test_configurator_) {
+ test_context_flags |= USE_TEST_CONFIGURATOR;
+ configurator.reset(new TestDataReductionProxyConfigurator(
+ task_runner, net_log.get(), event_store.get()));
} else {
- configurator = make_scoped_ptr(new DataReductionProxyConfigurator(
- task_runner_, &net_log_, event_store.get()));
+ configurator.reset(new DataReductionProxyConfigurator(
+ task_runner, net_log.get(), event_store.get()));
}
scoped_ptr<TestDataReductionProxyConfig> config;
- if (test_context_flags_ & DataReductionProxyTestContext::USE_MOCK_CONFIG) {
+ if (use_mock_config_) {
+ test_context_flags |= USE_MOCK_CONFIG;
config.reset(new MockDataReductionProxyConfig(
- params_flags, params_definitions, task_runner_, &net_log_,
+ params_flags_, params_definitions_, task_runner, net_log.get(),
configurator.get(), event_store.get()));
} else {
config.reset(new TestDataReductionProxyConfig(
- params_flags, params_definitions, task_runner_, &net_log_,
+ params_flags_, params_definitions_, task_runner, net_log.get(),
configurator.get(), event_store.get()));
}
- scoped_ptr<DataReductionProxyRequestOptions> request_options =
- make_scoped_ptr(new DataReductionProxyRequestOptions(
- Client::UNKNOWN, config.get(), task_runner_));
- settings_.reset(new DataReductionProxySettings());
-
- RegisterSimpleProfilePrefs(simple_pref_service_.registry());
-
- io_data_.reset(new TestDataReductionProxyIOData(
- task_runner_.get(), config.Pass(), event_store.Pass(),
- request_options.Pass(), configurator.Pass()));
- io_data_->InitOnUIThread(&simple_pref_service_);
-
- if (!(test_context_flags_ &
- DataReductionProxyTestContext::SKIP_SETTINGS_INITIALIZATION)) {
- settings_->InitDataReductionProxySettings(
- &simple_pref_service_, io_data_.get(),
- CreateDataReductionProxyServiceInternal());
- io_data_->SetDataReductionProxyService(
- settings_->data_reduction_proxy_service()->GetWeakPtr());
- }
+
+ scoped_ptr<DataReductionProxyRequestOptions> request_options(
+ new DataReductionProxyRequestOptions(client_, config.get(), task_runner));
+
+ scoped_ptr<DataReductionProxySettings> settings(
+ new DataReductionProxySettings());
+ if (skip_settings_initialization_)
+ test_context_flags |= SKIP_SETTINGS_INITIALIZATION;
+
+ if (use_mock_service_)
+ test_context_flags |= USE_MOCK_SERVICE;
+
+ RegisterSimpleProfilePrefs(pref_service->registry());
+
+ scoped_ptr<TestDataReductionProxyIOData> io_data(
+ new TestDataReductionProxyIOData(
+ task_runner, config.Pass(), event_store.Pass(),
+ request_options.Pass(), configurator.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, io_data.Pass(), settings.Pass(),
+ test_context_flags));
+
+ if (!skip_settings_initialization_)
+ test_context->InitSettingsWithoutCheck();
+
+ return test_context.Pass();
+}
+
+DataReductionProxyTestContext::DataReductionProxyTestContext(
+ scoped_ptr<base::MessageLoop> loop,
+ scoped_refptr<base::SingleThreadTaskRunner> task_runner,
+ scoped_ptr<TestingPrefServiceSimple> simple_pref_service,
+ scoped_ptr<net::CapturingNetLog> net_log,
+ scoped_refptr<net::URLRequestContextGetter> request_context_getter,
+ scoped_ptr<TestDataReductionProxyIOData> io_data,
+ scoped_ptr<DataReductionProxySettings> settings,
+ unsigned int test_context_flags)
+ : test_context_flags_(test_context_flags),
+ loop_(loop.Pass()),
+ task_runner_(task_runner),
+ simple_pref_service_(simple_pref_service.Pass()),
+ net_log_(net_log.Pass()),
+ request_context_getter_(request_context_getter),
+ io_data_(io_data.Pass()),
+ settings_(settings.Pass()) {
+}
+
+DataReductionProxyTestContext::~DataReductionProxyTestContext() {
}
void DataReductionProxyTestContext::RunUntilIdle() {
@@ -131,8 +214,13 @@ void DataReductionProxyTestContext::RunUntilIdle() {
void DataReductionProxyTestContext::InitSettings() {
DCHECK(test_context_flags_ &
DataReductionProxyTestContext::SKIP_SETTINGS_INITIALIZATION);
+ InitSettingsWithoutCheck();
+}
+
+void DataReductionProxyTestContext::InitSettingsWithoutCheck() {
settings_->InitDataReductionProxySettings(
- &simple_pref_service_, io_data_.get(), CreateDataReductionProxyService());
+ simple_pref_service_.get(), io_data_.get(),
+ CreateDataReductionProxyServiceInternal());
io_data_->SetDataReductionProxyService(
settings_->data_reduction_proxy_service()->GetWeakPtr());
}
@@ -148,7 +236,7 @@ scoped_ptr<DataReductionProxyService>
DataReductionProxyTestContext::CreateDataReductionProxyServiceInternal() {
scoped_ptr<DataReductionProxyStatisticsPrefs> statistics_prefs =
make_scoped_ptr(new DataReductionProxyStatisticsPrefs(
- &simple_pref_service_, task_runner_, base::TimeDelta()));
+ simple_pref_service_.get(), task_runner_, base::TimeDelta()));
if (test_context_flags_ & DataReductionProxyTestContext::USE_MOCK_SERVICE) {
return make_scoped_ptr(new MockDataReductionProxyService(

Powered by Google App Engine
This is Rietveld 408576698