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

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

Issue 1684123004: Bypass the DataReductionProxy for all POST requests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix Rebase issue Created 4 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_delegate_unittest.cc
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate_unittest.cc
index 147a283d317332a3016e72c3320f26aec1478a50..00ca8f5f5d3bfa06c5837c0709d9b2ec579e90cc 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate_unittest.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate_unittest.cc
@@ -343,63 +343,72 @@ TEST_F(DataReductionProxyDelegateTest, OnResolveProxyHandler) {
net::ProxyRetryInfo retry_info;
retry_info.current_delay = base::TimeDelta::FromSeconds(1000);
retry_info.bad_until = base::TimeTicks().Now() + retry_info.current_delay;
retry_info.try_while_bad = false;
data_reduction_proxy_retry_info[data_reduction_proxy_info.proxy_server()
.ToURI()] = retry_info;
net::ProxyInfo result;
// Another proxy is used. It should be used afterwards.
result.Use(other_proxy_info);
- OnResolveProxyHandler(url, load_flags, data_reduction_proxy_config,
+ OnResolveProxyHandler(url, "GET", load_flags, data_reduction_proxy_config,
empty_proxy_retry_info, config(), &result);
EXPECT_EQ(other_proxy_info.proxy_server(), result.proxy_server());
// A direct connection is used. The data reduction proxy should be used
// afterwards.
// Another proxy is used. It should be used afterwards.
result.Use(direct_proxy_info);
net::ProxyConfig::ID prev_id = result.config_id();
- OnResolveProxyHandler(url, load_flags, data_reduction_proxy_config,
+ OnResolveProxyHandler(url, "GET", load_flags, data_reduction_proxy_config,
empty_proxy_retry_info, config(), &result);
EXPECT_EQ(data_reduction_proxy_info.proxy_server(), result.proxy_server());
// Only the proxy list should be updated, not he proxy info.
EXPECT_EQ(result.config_id(), prev_id);
// A direct connection is used, but the data reduction proxy is on the retry
// list. A direct connection should be used afterwards.
result.Use(direct_proxy_info);
prev_id = result.config_id();
- OnResolveProxyHandler(url, load_flags, data_reduction_proxy_config,
+ OnResolveProxyHandler(GURL("ws://echo.websocket.org/"), "GET", load_flags,
+ data_reduction_proxy_config,
data_reduction_proxy_retry_info, config(), &result);
EXPECT_TRUE(result.proxy_server().is_direct());
EXPECT_EQ(result.config_id(), prev_id);
// Test that ws:// and wss:// URLs bypass the data reduction proxy.
result.UseDirect();
- OnResolveProxyHandler(GURL("ws://echo.websocket.org/"), load_flags,
+ OnResolveProxyHandler(GURL("wss://echo.websocket.org/"), "GET", load_flags,
data_reduction_proxy_config, empty_proxy_retry_info,
config(), &result);
EXPECT_TRUE(result.is_direct());
- OnResolveProxyHandler(GURL("wss://echo.websocket.org/"), load_flags,
+ result.UseDirect();
+ OnResolveProxyHandler(GURL("wss://echo.websocket.org/"), "GET", load_flags,
data_reduction_proxy_config, empty_proxy_retry_info,
config(), &result);
EXPECT_TRUE(result.is_direct());
+ // POST methods go direct.
+ result.UseDirect();
+ OnResolveProxyHandler(url, "POST", load_flags, data_reduction_proxy_config,
+ empty_proxy_retry_info, config(), &result);
+ EXPECT_TRUE(result.is_direct());
+
// Without DataCompressionProxyCriticalBypass Finch trial set, the
// BYPASS_DATA_REDUCTION_PROXY load flag should be ignored.
- OnResolveProxyHandler(url, load_flags, data_reduction_proxy_config,
+ result.UseDirect();
+ OnResolveProxyHandler(url, "GET", load_flags, data_reduction_proxy_config,
empty_proxy_retry_info, config(), &result);
EXPECT_FALSE(result.is_direct());
- OnResolveProxyHandler(url, load_flags, data_reduction_proxy_config,
+ OnResolveProxyHandler(url, "GET", load_flags, data_reduction_proxy_config,
empty_proxy_retry_info, config(), &other_proxy_info);
EXPECT_FALSE(other_proxy_info.is_direct());
}
// Verifies that requests that were not proxied through data saver proxy due to
// missing config are recorded properly.
TEST_F(DataReductionProxyDelegateTest, HTTPRequests) {
const struct {
std::string url;
bool enabled_by_user;
@@ -467,22 +476,23 @@ TEST_F(DataReductionProxyDelegateTest, HTTPRequests) {
false /* at_startup */);
net::ProxyRetryInfoMap empty_proxy_retry_info;
net::ProxyInfo direct_proxy_info;
direct_proxy_info.UseDirect();
EXPECT_TRUE(direct_proxy_info.is_direct());
net::ProxyInfo result;
result.Use(direct_proxy_info);
- OnResolveProxyHandler(url, net::LOAD_NORMAL, data_reduction_proxy_config,
- empty_proxy_retry_info, config(), &result);
+ OnResolveProxyHandler(url, "GET", net::LOAD_NORMAL,
+ data_reduction_proxy_config, empty_proxy_retry_info,
+ config(), &result);
histogram_tester.ExpectTotalCount(
"DataReductionProxy.ConfigService.HTTPRequests",
tests[i].expect_histogram ? 1 : 0);
if (tests[i].expect_histogram) {
histogram_tester.ExpectUniqueSample(
"DataReductionProxy.ConfigService.HTTPRequests",
tests[i].use_direct_proxy ? 0 : 1, 1);
}
}

Powered by Google App Engine
This is Rietveld 408576698