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

Unified Diff: components/data_reduction_proxy/browser/data_reduction_proxy_protocol_unittest.cc

Issue 390533003: Bypassed Bytes UMAs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed bengr comments Created 6 years, 5 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/browser/data_reduction_proxy_protocol_unittest.cc
diff --git a/components/data_reduction_proxy/browser/data_reduction_proxy_protocol_unittest.cc b/components/data_reduction_proxy/browser/data_reduction_proxy_protocol_unittest.cc
index 65535764d755a29ebeb81c0ecee72aa95f1c79cd..4737c89600430816796f38f0986da97c0cb9985c 100644
--- a/components/data_reduction_proxy/browser/data_reduction_proxy_protocol_unittest.cc
+++ b/components/data_reduction_proxy/browser/data_reduction_proxy_protocol_unittest.cc
@@ -57,8 +57,11 @@ namespace data_reduction_proxy {
class TestDataReductionProxyNetworkDelegate : public net::NetworkDelegate {
public:
TestDataReductionProxyNetworkDelegate(
- TestDataReductionProxyParams* test_params)
- : net::NetworkDelegate(), test_data_reduction_proxy_params_(test_params) {
+ TestDataReductionProxyParams* test_params,
+ ProxyService::DataReductionProxyBypassType* bypass_type)
+ : net::NetworkDelegate(),
+ test_data_reduction_proxy_params_(test_params),
+ bypass_type_(bypass_type) {
}
virtual int OnHeadersReceived(
@@ -71,11 +74,13 @@ class TestDataReductionProxyNetworkDelegate : public net::NetworkDelegate {
test_data_reduction_proxy_params_,
request,
original_response_headers,
- override_response_headers);
+ override_response_headers,
+ bypass_type_);
return net::OK;
}
TestDataReductionProxyParams* test_data_reduction_proxy_params_;
+ ProxyService::DataReductionProxyBypassType* bypass_type_;
};
// Constructs a |TestURLRequestContext| that uses a |MockSocketFactory| to
@@ -93,13 +98,15 @@ class DataReductionProxyProtocolTest : public testing::Test {
}
// Sets up the |TestURLRequestContext| with the provided |ProxyService|.
bengr 2014/07/21 22:23:57 Mention the bypass_type
megjablon 2014/07/22 02:11:30 Done.
- void ConfigureTestDependencies(ProxyService* proxy_service) {
+ void ConfigureTestDependencies(
+ ProxyService* proxy_service,
+ ProxyService::DataReductionProxyBypassType* bypass_type) {
// Create a context with delayed initialization.
context_.reset(new TestURLRequestContext(true));
proxy_service_.reset(proxy_service);
network_delegate_.reset(new TestDataReductionProxyNetworkDelegate(
- proxy_params_.get()));
+ proxy_params_.get(), bypass_type));
context_->set_client_socket_factory(&mock_socket_factory_);
context_->set_proxy_service(proxy_service_.get());
@@ -359,6 +366,7 @@ TEST_F(DataReductionProxyProtocolTest, BypassLogic) {
size_t expected_bad_proxy_count;
bool expect_response_body;
int expected_duration;
+ ProxyService::DataReductionProxyBypassType expected_bypass_type;
} tests[] = {
// Valid data reduction proxy response with no bypass message.
{ "GET",
@@ -368,7 +376,8 @@ TEST_F(DataReductionProxyProtocolTest, BypassLogic) {
false,
0u,
true,
- -1
+ -1,
+ ProxyService::BYPASS_EVENT_TYPE_MAX,
},
// Valid data reduction proxy response with older, but still valid via
// header.
@@ -379,7 +388,8 @@ TEST_F(DataReductionProxyProtocolTest, BypassLogic) {
false,
0u,
true,
- -1
+ -1,
+ ProxyService::BYPASS_EVENT_TYPE_MAX
},
// Valid data reduction proxy response with chained via header,
// no bypass message.
@@ -390,7 +400,8 @@ TEST_F(DataReductionProxyProtocolTest, BypassLogic) {
false,
0u,
true,
- -1
+ -1,
+ ProxyService::BYPASS_EVENT_TYPE_MAX
},
// Valid data reduction proxy response with a bypass message.
{ "GET",
@@ -401,7 +412,8 @@ TEST_F(DataReductionProxyProtocolTest, BypassLogic) {
true,
1u,
true,
- 0
+ 0,
+ ProxyService::MEDIUM_BYPASS
},
// Valid data reduction proxy response with a bypass message.
{ "GET",
@@ -412,7 +424,8 @@ TEST_F(DataReductionProxyProtocolTest, BypassLogic) {
true,
1u,
true,
- 1
+ 1,
+ ProxyService::SHORT_BYPASS
},
// Same as above with the OPTIONS method, which is idempotent.
{ "OPTIONS",
@@ -423,7 +436,8 @@ TEST_F(DataReductionProxyProtocolTest, BypassLogic) {
true,
1u,
true,
- 0
+ 0,
+ ProxyService::MEDIUM_BYPASS
},
// Same as above with the HEAD method, which is idempotent.
{ "HEAD",
@@ -434,7 +448,8 @@ TEST_F(DataReductionProxyProtocolTest, BypassLogic) {
true,
1u,
false,
- 0
+ 0,
+ ProxyService::MEDIUM_BYPASS
},
// Same as above with the PUT method, which is idempotent.
{ "PUT",
@@ -445,7 +460,8 @@ TEST_F(DataReductionProxyProtocolTest, BypassLogic) {
true,
1u,
true,
- 0
+ 0,
+ ProxyService::MEDIUM_BYPASS
},
// Same as above with the DELETE method, which is idempotent.
{ "DELETE",
@@ -456,7 +472,8 @@ TEST_F(DataReductionProxyProtocolTest, BypassLogic) {
true,
1u,
true,
- 0
+ 0,
+ ProxyService::MEDIUM_BYPASS
},
// Same as above with the TRACE method, which is idempotent.
{ "TRACE",
@@ -467,7 +484,8 @@ TEST_F(DataReductionProxyProtocolTest, BypassLogic) {
true,
1u,
true,
- 0
+ 0,
+ ProxyService::MEDIUM_BYPASS
},
// 500 responses should be bypassed.
{ "GET",
@@ -477,7 +495,8 @@ TEST_F(DataReductionProxyProtocolTest, BypassLogic) {
true,
1u,
true,
- 0
+ 0,
+ ProxyService::STATUS_500_HTTP_INTERNAL_SERVER_ERROR
},
// 502 responses should be bypassed.
{ "GET",
@@ -487,7 +506,8 @@ TEST_F(DataReductionProxyProtocolTest, BypassLogic) {
true,
1u,
true,
- 0
+ 0,
+ ProxyService::STATUS_502_HTTP_BAD_GATEWAY
},
// 503 responses should be bypassed.
{ "GET",
@@ -497,7 +517,8 @@ TEST_F(DataReductionProxyProtocolTest, BypassLogic) {
true,
1u,
true,
- 0
+ 0,
+ ProxyService::STATUS_503_HTTP_SERVICE_UNAVAILABLE
},
// Invalid data reduction proxy response. Missing Via header.
{ "GET",
@@ -506,7 +527,8 @@ TEST_F(DataReductionProxyProtocolTest, BypassLogic) {
true,
1u,
true,
- 0
+ 0,
+ ProxyService::MISSING_VIA_HEADER_OTHER
},
// Invalid data reduction proxy response. Wrong Via header.
{ "GET",
@@ -516,7 +538,8 @@ TEST_F(DataReductionProxyProtocolTest, BypassLogic) {
true,
1u,
true,
- 0
+ 0,
+ ProxyService::MISSING_VIA_HEADER_OTHER
},
// Valid data reduction proxy response. 304 missing Via header.
{ "GET",
@@ -525,7 +548,8 @@ TEST_F(DataReductionProxyProtocolTest, BypassLogic) {
false,
0u,
false,
- 0
+ 0,
+ ProxyService::BYPASS_EVENT_TYPE_MAX
},
// Valid data reduction proxy response with a bypass message. It will
// not be retried because the request is non-idempotent.
@@ -537,7 +561,8 @@ TEST_F(DataReductionProxyProtocolTest, BypassLogic) {
false,
1u,
true,
- 0
+ 0,
+ ProxyService::MEDIUM_BYPASS
},
// Valid data reduction proxy response with block message. Both proxies
// should be on the retry list when it completes.
@@ -549,21 +574,26 @@ TEST_F(DataReductionProxyProtocolTest, BypassLogic) {
true,
2u,
true,
- 1
+ 1,
+ ProxyService::SHORT_BYPASS
}
};
std::string primary = proxy_params_->DefaultOrigin();
std::string fallback = proxy_params_->DefaultFallbackOrigin();
for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) {
+ ProxyService::DataReductionProxyBypassType bypass_type;
ConfigureTestDependencies(ProxyService::CreateFixedFromPacResult(
"PROXY " +
HostPortPair::FromURL(GURL(primary)).ToString() + "; PROXY " +
- HostPortPair::FromURL(GURL(fallback)).ToString() + "; DIRECT"));
+ HostPortPair::FromURL(GURL(fallback)).ToString() + "; DIRECT"),
+ &bypass_type);
TestProxyFallback(tests[i].method,
tests[i].first_response,
tests[i].expected_retry,
tests[i].expect_response_body);
+ EXPECT_EQ(tests[i].expected_bypass_type, bypass_type);
+
// We should also observe the bad proxy in the retry list.
TestBadProxies(tests[i].expected_bad_proxy_count,
tests[i].expected_duration,
@@ -575,7 +605,8 @@ TEST_F(DataReductionProxyProtocolTest,
ProxyBypassIgnoredOnDirectConnection) {
// Verify that a Chrome-Proxy header is ignored when returned from a directly
// connected origin server.
- ConfigureTestDependencies(ProxyService::CreateFixedFromPacResult("DIRECT"));
+ ConfigureTestDependencies(ProxyService::CreateFixedFromPacResult("DIRECT"),
+ NULL);
MockRead data_reads[] = {
MockRead("HTTP/1.1 200 OK\r\n"

Powered by Google App Engine
This is Rietveld 408576698