Index: components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options_unittest.cc |
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options_unittest.cc |
index 53741a9b37dc150877d2e67d386f8899fb8f5a18..ab271aa2e23dce872d6c4821874cffba5d122763 100644 |
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options_unittest.cc |
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options_unittest.cc |
@@ -4,6 +4,9 @@ |
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options.h" |
+#include <string> |
+#include <vector> |
+ |
#include "base/command_line.h" |
#include "base/md5.h" |
#include "base/memory/scoped_ptr.h" |
@@ -16,9 +19,13 @@ |
#include "components/data_reduction_proxy/core/common/data_reduction_proxy_switches.h" |
#include "net/base/auth.h" |
#include "net/base/host_port_pair.h" |
+#include "net/base/load_flags.h" |
#include "net/proxy/proxy_server.h" |
+#include "net/url_request/url_request.h" |
+#include "net/url_request/url_request_context.h" |
#include "testing/gmock/include/gmock/gmock.h" |
#include "testing/gtest/include/gtest/gtest.h" |
+#include "url/gurl.h" |
namespace { |
const char kChromeProxyHeader[] = "chrome-proxy"; |
@@ -138,6 +145,13 @@ class DataReductionProxyRequestOptionsTest : public testing::Test { |
request_options_->Init(); |
} |
+ void CreateRequest(int load_flags) { |
+ net::URLRequestContext* context = |
+ test_context_->request_context_getter()->GetURLRequestContext(); |
+ request_ = context->CreateRequest(GURL(), net::DEFAULT_PRIORITY, nullptr); |
+ request_->SetLoadFlags(load_flags); |
+ } |
+ |
TestDataReductionProxyParams* params() { |
return test_context_->config()->test_params(); |
} |
@@ -151,9 +165,10 @@ class DataReductionProxyRequestOptionsTest : public testing::Test { |
test_context_->RunUntilIdle(); |
net::HttpRequestHeaders headers; |
request_options_->MaybeAddRequestHeader( |
- NULL, |
- proxy_uri.empty() ? net::ProxyServer() : |
- net::ProxyServer::FromURI(proxy_uri, net::ProxyServer::SCHEME_HTTP), |
+ request_.get(), |
+ proxy_uri.empty() ? net::ProxyServer() |
+ : net::ProxyServer::FromURI( |
+ proxy_uri, net::ProxyServer::SCHEME_HTTP), |
&headers); |
if (expected_header.empty()) { |
EXPECT_FALSE(headers.HasHeader(kChromeProxyHeader)); |
@@ -168,6 +183,7 @@ class DataReductionProxyRequestOptionsTest : public testing::Test { |
base::MessageLoopForIO message_loop_; |
scoped_ptr<TestDataReductionProxyRequestOptions> request_options_; |
scoped_ptr<DataReductionProxyTestContext> test_context_; |
+ scoped_ptr<net::URLRequest> request_; |
}; |
TEST_F(DataReductionProxyRequestOptionsTest, AuthHashForSalt) { |
@@ -287,6 +303,30 @@ TEST_F(DataReductionProxyRequestOptionsTest, LoFiOn) { |
VerifyExpectedHeader(params()->DefaultOrigin(), expected_header); |
} |
+TEST_F(DataReductionProxyRequestOptionsTest, LoFiReloadSingleImage) { |
+ // Add the LoFi command line switch. |
+ base::CommandLine::ForCurrentProcess()->AppendSwitch( |
+ data_reduction_proxy::switches::kEnableDataReductionProxyLoFi); |
+ |
+ std::string expected_header; |
+ SetHeaderExpectations(kExpectedSession, kExpectedCredentials, std::string(), |
+ kClientStr, std::string(), std::string(), std::string(), |
+ std::vector<std::string>(), &expected_header); |
+ |
+ CreateRequest(net::LOAD_BYPASS_CACHE); |
+ CreateRequestOptions(kBogusVersion); |
+ VerifyExpectedHeader(params()->DefaultOrigin(), expected_header); |
+ |
+ // Check that LoFi turns back on. |
+ SetHeaderExpectations(kExpectedSession, kExpectedCredentials, std::string(), |
+ kClientStr, std::string(), std::string(), "low", |
+ std::vector<std::string>(), &expected_header); |
+ |
+ CreateRequest(net::LOAD_NORMAL); |
+ CreateRequestOptions(kBogusVersion); |
+ VerifyExpectedHeader(params()->DefaultOrigin(), expected_header); |
+} |
+ |
TEST_F(DataReductionProxyRequestOptionsTest, SecureSession) { |
std::string expected_header; |
SetHeaderExpectations(std::string(), std::string(), kSecureSession, |