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

Side by Side Diff: components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_stats_unittest.cc

Issue 2261103002: Use modified URLRequest::Read() and delegate methods in components/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@URLRequestRead
Patch Set: comments Created 4 years, 3 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_bypa ss_stats.h" 5 #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_bypa ss_stats.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <memory> 10 #include <memory>
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 .WillRepeatedly(testing::Return( 172 .WillRepeatedly(testing::Return(
173 test_case.fallback_proxy_server_is_data_reduction_proxy)); 173 test_case.fallback_proxy_server_is_data_reduction_proxy));
174 EXPECT_CALL(*config(), WasDataReductionProxyUsed(url_request(), testing::_)) 174 EXPECT_CALL(*config(), WasDataReductionProxyUsed(url_request(), testing::_))
175 .WillRepeatedly(testing::Return(test_case.was_proxy_used)); 175 .WillRepeatedly(testing::Return(test_case.was_proxy_used));
176 176
177 std::unique_ptr<DataReductionProxyBypassStats> bypass_stats = 177 std::unique_ptr<DataReductionProxyBypassStats> bypass_stats =
178 BuildBypassStats(); 178 BuildBypassStats();
179 179
180 bypass_stats->OnProxyFallback(fallback_proxy_server, 180 bypass_stats->OnProxyFallback(fallback_proxy_server,
181 net::ERR_PROXY_CONNECTION_FAILED); 181 net::ERR_PROXY_CONNECTION_FAILED);
182 bypass_stats->OnUrlRequestCompleted(url_request(), false); 182 bypass_stats->OnUrlRequestCompleted(url_request(), false, net::OK);
183 RunUntilIdle(); 183 RunUntilIdle();
184 184
185 EXPECT_EQ(test_case.is_unreachable, IsUnreachable()); 185 EXPECT_EQ(test_case.is_unreachable, IsUnreachable());
186 } 186 }
187 } 187 }
188 188
189 TEST_F(DataReductionProxyBypassStatsTest, ProxyUnreachableThenReachable) { 189 TEST_F(DataReductionProxyBypassStatsTest, ProxyUnreachableThenReachable) {
190 net::ProxyServer fallback_proxy_server = 190 net::ProxyServer fallback_proxy_server =
191 net::ProxyServer::FromURI("foo.com", net::ProxyServer::SCHEME_HTTP); 191 net::ProxyServer::FromURI("foo.com", net::ProxyServer::SCHEME_HTTP);
192 std::unique_ptr<DataReductionProxyBypassStats> bypass_stats = 192 std::unique_ptr<DataReductionProxyBypassStats> bypass_stats =
193 BuildBypassStats(); 193 BuildBypassStats();
194 EXPECT_CALL(*config(), IsDataReductionProxy(testing::_, testing::_)) 194 EXPECT_CALL(*config(), IsDataReductionProxy(testing::_, testing::_))
195 .WillOnce(testing::Return(true)); 195 .WillOnce(testing::Return(true));
196 EXPECT_CALL(*config(), WasDataReductionProxyUsed(url_request(), testing::_)) 196 EXPECT_CALL(*config(), WasDataReductionProxyUsed(url_request(), testing::_))
197 .WillOnce(testing::Return(true)); 197 .WillOnce(testing::Return(true));
198 198
199 // proxy falls back 199 // proxy falls back
200 bypass_stats->OnProxyFallback(fallback_proxy_server, 200 bypass_stats->OnProxyFallback(fallback_proxy_server,
201 net::ERR_PROXY_CONNECTION_FAILED); 201 net::ERR_PROXY_CONNECTION_FAILED);
202 RunUntilIdle(); 202 RunUntilIdle();
203 EXPECT_TRUE(IsUnreachable()); 203 EXPECT_TRUE(IsUnreachable());
204 204
205 // proxy succeeds 205 // proxy succeeds
206 bypass_stats->OnUrlRequestCompleted(url_request(), false); 206 bypass_stats->OnUrlRequestCompleted(url_request(), false, net::OK);
207 RunUntilIdle(); 207 RunUntilIdle();
208 EXPECT_FALSE(IsUnreachable()); 208 EXPECT_FALSE(IsUnreachable());
209 } 209 }
210 210
211 TEST_F(DataReductionProxyBypassStatsTest, ProxyReachableThenUnreachable) { 211 TEST_F(DataReductionProxyBypassStatsTest, ProxyReachableThenUnreachable) {
212 net::ProxyServer fallback_proxy_server = 212 net::ProxyServer fallback_proxy_server =
213 net::ProxyServer::FromURI("foo.com", net::ProxyServer::SCHEME_HTTP); 213 net::ProxyServer::FromURI("foo.com", net::ProxyServer::SCHEME_HTTP);
214 std::unique_ptr<DataReductionProxyBypassStats> bypass_stats = 214 std::unique_ptr<DataReductionProxyBypassStats> bypass_stats =
215 BuildBypassStats(); 215 BuildBypassStats();
216 EXPECT_CALL(*config(), WasDataReductionProxyUsed(url_request(), testing::_)) 216 EXPECT_CALL(*config(), WasDataReductionProxyUsed(url_request(), testing::_))
217 .WillOnce(testing::Return(true)); 217 .WillOnce(testing::Return(true));
218 EXPECT_CALL(*config(), IsDataReductionProxy(testing::_, testing::_)) 218 EXPECT_CALL(*config(), IsDataReductionProxy(testing::_, testing::_))
219 .WillRepeatedly(testing::Return(true)); 219 .WillRepeatedly(testing::Return(true));
220 220
221 // Proxy succeeds. 221 // Proxy succeeds.
222 bypass_stats->OnUrlRequestCompleted(url_request(), false); 222 bypass_stats->OnUrlRequestCompleted(url_request(), false, net::OK);
223 RunUntilIdle(); 223 RunUntilIdle();
224 EXPECT_FALSE(IsUnreachable()); 224 EXPECT_FALSE(IsUnreachable());
225 225
226 // Then proxy falls back indefinitely. 226 // Then proxy falls back indefinitely.
227 bypass_stats->OnProxyFallback(fallback_proxy_server, 227 bypass_stats->OnProxyFallback(fallback_proxy_server,
228 net::ERR_PROXY_CONNECTION_FAILED); 228 net::ERR_PROXY_CONNECTION_FAILED);
229 bypass_stats->OnProxyFallback(fallback_proxy_server, 229 bypass_stats->OnProxyFallback(fallback_proxy_server,
230 net::ERR_PROXY_CONNECTION_FAILED); 230 net::ERR_PROXY_CONNECTION_FAILED);
231 bypass_stats->OnProxyFallback(fallback_proxy_server, 231 bypass_stats->OnProxyFallback(fallback_proxy_server,
232 net::ERR_PROXY_CONNECTION_FAILED); 232 net::ERR_PROXY_CONNECTION_FAILED);
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after
492 if (test.net_error != net::OK) 492 if (test.net_error != net::OK)
493 fake_request->CancelWithError(static_cast<int>(test.net_error)); 493 fake_request->CancelWithError(static_cast<int>(test.net_error));
494 494
495 DataReductionProxyTypeInfo proxy_info; 495 DataReductionProxyTypeInfo proxy_info;
496 proxy_info.proxy_index = test.proxy_index; 496 proxy_info.proxy_index = test.proxy_index;
497 EXPECT_CALL(*config(), WasDataReductionProxyUsed(fake_request.get(), 497 EXPECT_CALL(*config(), WasDataReductionProxyUsed(fake_request.get(),
498 testing::NotNull())) 498 testing::NotNull()))
499 .WillRepeatedly(testing::DoAll(testing::SetArgPointee<1>(proxy_info), 499 .WillRepeatedly(testing::DoAll(testing::SetArgPointee<1>(proxy_info),
500 Return(test.was_proxy_used))); 500 Return(test.was_proxy_used)));
501 501
502 bypass_stats->OnUrlRequestCompleted(fake_request.get(), false); 502 bypass_stats->OnUrlRequestCompleted(fake_request.get(), false,
503 test.net_error);
503 504
504 if (test.was_proxy_used && !test.is_load_bypass_proxy && 505 if (test.was_proxy_used && !test.is_load_bypass_proxy &&
505 test.net_error == net::OK) { 506 test.net_error == net::OK) {
506 histogram_tester.ExpectUniqueSample(kPrimaryHistogramName, 507 histogram_tester.ExpectUniqueSample(kPrimaryHistogramName,
507 test.proxy_index, 1); 508 test.proxy_index, 1);
508 } else { 509 } else {
509 histogram_tester.ExpectTotalCount(kPrimaryHistogramName, 0); 510 histogram_tester.ExpectTotalCount(kPrimaryHistogramName, 0);
510 } 511 }
511 512
512 if (test.was_proxy_used && !test.is_load_bypass_proxy && 513 if (test.was_proxy_used && !test.is_load_bypass_proxy &&
(...skipping 450 matching lines...) Expand 10 before | Expand all | Expand 10 after
963 kNextBody.c_str(), nullptr, nullptr); 964 kNextBody.c_str(), nullptr, nullptr);
964 histogram_tester.ExpectUniqueSample( 965 histogram_tester.ExpectUniqueSample(
965 "DataReductionProxy.BypassedBytes.NotBypassed", kNextBody.size(), 1); 966 "DataReductionProxy.BypassedBytes.NotBypassed", kNextBody.size(), 1);
966 ExpectOtherBypassedBytesHistogramsEmpty( 967 ExpectOtherBypassedBytesHistogramsEmpty(
967 histogram_tester, "DataReductionProxy.BypassedBytes.NotBypassed"); 968 histogram_tester, "DataReductionProxy.BypassedBytes.NotBypassed");
968 } 969 }
969 } 970 }
970 } 971 }
971 972
972 } // namespace data_reduction_proxy 973 } // namespace data_reduction_proxy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698