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 422cd424f34a846ebee419190125aef311fe5054..e9ea65ee061dfa2742900b986caceec3b973f8ae 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 |
@@ -22,8 +22,55 @@ |
#include "net/url_request/url_request_job_factory_impl.h" |
#include "net/url_request/url_request_test_util.h" |
+namespace { |
+ |
+const char kTestKey[] = "test-key"; |
+ |
+} // namespace |
+ |
namespace data_reduction_proxy { |
+TestDataReductionProxyRequestOptions::TestDataReductionProxyRequestOptions( |
+ Client client, |
+ const std::string& version, |
+ DataReductionProxyConfig* config, |
+ scoped_refptr<base::SingleThreadTaskRunner> task_runner) |
+ : DataReductionProxyRequestOptions(client, version, config, task_runner) { |
+} |
+ |
+std::string TestDataReductionProxyRequestOptions::GetDefaultKey() const { |
+ return kTestKey; |
+} |
+ |
+base::Time TestDataReductionProxyRequestOptions::Now() const { |
+ return base::Time::UnixEpoch() + now_offset_; |
+} |
+ |
+void TestDataReductionProxyRequestOptions::RandBytes(void* output, |
+ size_t length) const { |
+ char* c = static_cast<char*>(output); |
+ for (size_t i = 0; i < length; ++i) { |
+ c[i] = 'a'; |
+ } |
+} |
+ |
+// Time after the unix epoch that Now() reports. |
+void TestDataReductionProxyRequestOptions::set_offset( |
+ const base::TimeDelta& now_offset) { |
+ now_offset_ = now_offset; |
+} |
+ |
+MockDataReductionProxyRequestOptions::MockDataReductionProxyRequestOptions( |
+ Client client, |
+ const std::string& version, |
+ DataReductionProxyConfig* config, |
+ scoped_refptr<base::SingleThreadTaskRunner> task_runner) |
+ : DataReductionProxyRequestOptions(client, version, config, task_runner) { |
+} |
+ |
+MockDataReductionProxyRequestOptions::~MockDataReductionProxyRequestOptions() { |
+} |
+ |
MockDataReductionProxyService::MockDataReductionProxyService( |
scoped_ptr<DataReductionProxyStatisticsPrefs> statistics_prefs, |
DataReductionProxySettings* settings, |
@@ -65,6 +112,7 @@ DataReductionProxyTestContext::Builder::Builder() |
use_mock_config_(false), |
use_test_configurator_(false), |
use_mock_service_(false), |
+ use_mock_request_options_(false), |
skip_settings_initialization_(false) { |
} |
@@ -120,6 +168,12 @@ DataReductionProxyTestContext::Builder::WithMockDataReductionProxyService() { |
} |
DataReductionProxyTestContext::Builder& |
+DataReductionProxyTestContext::Builder::WithMockRequestOptions() { |
+ use_mock_request_options_ = true; |
+ return *this; |
+} |
+ |
+DataReductionProxyTestContext::Builder& |
DataReductionProxyTestContext::Builder::SkipSettingsInitialization() { |
skip_settings_initialization_ = true; |
return *this; |
@@ -173,8 +227,15 @@ DataReductionProxyTestContext::Builder::Build() { |
configurator.get(), event_store.get())); |
} |
- scoped_ptr<DataReductionProxyRequestOptions> request_options( |
- new DataReductionProxyRequestOptions(client_, config.get(), task_runner)); |
+ scoped_ptr<DataReductionProxyRequestOptions> request_options; |
+ if (use_mock_request_options_) { |
+ test_context_flags |= USE_MOCK_REQUEST_OPTIONS; |
+ request_options.reset(new MockDataReductionProxyRequestOptions( |
+ client_, std::string(), config.get(), task_runner)); |
+ } else { |
+ request_options.reset(new DataReductionProxyRequestOptions( |
+ client_, config.get(), task_runner)); |
+ } |
scoped_ptr<DataReductionProxySettings> settings( |
new DataReductionProxySettings()); |
@@ -344,6 +405,14 @@ DataReductionProxyTestContext::mock_data_reduction_proxy_service() |
data_reduction_proxy_service()); |
} |
+MockDataReductionProxyRequestOptions* |
+DataReductionProxyTestContext::mock_request_options() const { |
+ DCHECK(test_context_flags_ & |
+ DataReductionProxyTestContext::USE_MOCK_REQUEST_OPTIONS); |
+ return reinterpret_cast<MockDataReductionProxyRequestOptions*>( |
+ io_data_->request_options()); |
+} |
+ |
DataReductionProxyUsageStats::UnreachableCallback |
DataReductionProxyTestContext::unreachable_callback() const { |
return base::Bind(&DataReductionProxySettings::SetUnreachable, |