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

Side by Side Diff: components/domain_reliability/monitor_unittest.cc

Issue 1164823002: Remove URLRequestStatus mutators and introduce FromError. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 6 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/domain_reliability/monitor.h" 5 #include "components/domain_reliability/monitor.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 context_(nullptr) { 60 context_(nullptr) {
61 monitor_.MoveToNetworkThread(); 61 monitor_.MoveToNetworkThread();
62 monitor_.InitURLRequestContext(url_request_context_getter_); 62 monitor_.InitURLRequestContext(url_request_context_getter_);
63 monitor_.SetDiscardUploads(false); 63 monitor_.SetDiscardUploads(false);
64 context_ = monitor_.AddContextForTesting(MakeTestConfig()); 64 context_ = monitor_.AddContextForTesting(MakeTestConfig());
65 } 65 }
66 66
67 static RequestInfo MakeRequestInfo() { 67 static RequestInfo MakeRequestInfo() {
68 RequestInfo request; 68 RequestInfo request;
69 request.status = net::URLRequestStatus(); 69 request.status = net::URLRequestStatus();
70 request.status.set_status(net::URLRequestStatus::SUCCESS);
71 request.status.set_error(net::OK);
72 request.response_info.socket_address = 70 request.response_info.socket_address =
73 net::HostPortPair::FromString("12.34.56.78:80"); 71 net::HostPortPair::FromString("12.34.56.78:80");
74 request.response_info.headers = MakeHttpResponseHeaders( 72 request.response_info.headers = MakeHttpResponseHeaders(
75 "HTTP/1.1 200 OK\n\n"); 73 "HTTP/1.1 200 OK\n\n");
76 request.response_info.was_cached = false; 74 request.response_info.was_cached = false;
77 request.response_info.network_accessed = true; 75 request.response_info.network_accessed = true;
78 request.response_info.was_fetched_via_proxy = false; 76 request.response_info.was_fetched_via_proxy = false;
79 request.load_flags = 0; 77 request.load_flags = 0;
80 request.is_upload = false; 78 request.is_upload = false;
81 return request; 79 return request;
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 request.url = GURL("http://example/never_report"); 145 request.url = GURL("http://example/never_report");
148 OnRequestLegComplete(request); 146 OnRequestLegComplete(request);
149 147
150 EXPECT_EQ(0u, CountPendingBeacons()); 148 EXPECT_EQ(0u, CountPendingBeacons());
151 EXPECT_TRUE(CheckRequestCounts(kNeverReportIndex, 1u, 0u)); 149 EXPECT_TRUE(CheckRequestCounts(kNeverReportIndex, 1u, 0u));
152 } 150 }
153 151
154 TEST_F(DomainReliabilityMonitorTest, NetworkFailure) { 152 TEST_F(DomainReliabilityMonitorTest, NetworkFailure) {
155 RequestInfo request = MakeRequestInfo(); 153 RequestInfo request = MakeRequestInfo();
156 request.url = GURL("http://example/always_report"); 154 request.url = GURL("http://example/always_report");
157 request.status.set_status(net::URLRequestStatus::FAILED); 155 request.status = net::URLRequestStatus::FromError(net::ERR_CONNECTION_RESET);
158 request.status.set_error(net::ERR_CONNECTION_RESET);
159 request.response_info.headers = nullptr; 156 request.response_info.headers = nullptr;
160 OnRequestLegComplete(request); 157 OnRequestLegComplete(request);
161 158
162 EXPECT_EQ(1u, CountPendingBeacons()); 159 EXPECT_EQ(1u, CountPendingBeacons());
163 EXPECT_TRUE(CheckRequestCounts(kAlwaysReportIndex, 0u, 1u)); 160 EXPECT_TRUE(CheckRequestCounts(kAlwaysReportIndex, 0u, 1u));
164 } 161 }
165 162
166 TEST_F(DomainReliabilityMonitorTest, ServerFailure) { 163 TEST_F(DomainReliabilityMonitorTest, ServerFailure) {
167 RequestInfo request = MakeRequestInfo(); 164 RequestInfo request = MakeRequestInfo();
168 request.url = GURL("http://example/always_report"); 165 request.url = GURL("http://example/always_report");
169 request.response_info.headers = 166 request.response_info.headers =
170 MakeHttpResponseHeaders("HTTP/1.1 500 :(\n\n"); 167 MakeHttpResponseHeaders("HTTP/1.1 500 :(\n\n");
171 OnRequestLegComplete(request); 168 OnRequestLegComplete(request);
172 169
173 EXPECT_EQ(1u, CountPendingBeacons()); 170 EXPECT_EQ(1u, CountPendingBeacons());
174 EXPECT_TRUE(CheckRequestCounts(kAlwaysReportIndex, 0u, 1u)); 171 EXPECT_TRUE(CheckRequestCounts(kAlwaysReportIndex, 0u, 1u));
175 } 172 }
176 173
177 TEST_F(DomainReliabilityMonitorTest, NotReportedFailure) { 174 TEST_F(DomainReliabilityMonitorTest, NotReportedFailure) {
178 RequestInfo request = MakeRequestInfo(); 175 RequestInfo request = MakeRequestInfo();
179 request.url = GURL("http://example/never_report"); 176 request.url = GURL("http://example/never_report");
180 request.status.set_status(net::URLRequestStatus::FAILED); 177 request.status = net::URLRequestStatus::FromError(net::ERR_CONNECTION_RESET);
181 request.status.set_error(net::ERR_CONNECTION_RESET);
182 OnRequestLegComplete(request); 178 OnRequestLegComplete(request);
183 179
184 EXPECT_EQ(0u, CountPendingBeacons()); 180 EXPECT_EQ(0u, CountPendingBeacons());
185 EXPECT_TRUE(CheckRequestCounts(kNeverReportIndex, 0u, 1u)); 181 EXPECT_TRUE(CheckRequestCounts(kNeverReportIndex, 0u, 1u));
186 } 182 }
187 183
188 TEST_F(DomainReliabilityMonitorTest, Request) { 184 TEST_F(DomainReliabilityMonitorTest, Request) {
189 RequestInfo request = MakeRequestInfo(); 185 RequestInfo request = MakeRequestInfo();
190 request.url = GURL("http://example/always_report"); 186 request.url = GURL("http://example/always_report");
191 OnRequestLegComplete(request); 187 OnRequestLegComplete(request);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 OnRequestLegComplete(request); 220 OnRequestLegComplete(request);
225 221
226 EXPECT_EQ(0u, CountPendingBeacons()); 222 EXPECT_EQ(0u, CountPendingBeacons());
227 EXPECT_TRUE(CheckRequestCounts(kAlwaysReportIndex, 0u, 0u)); 223 EXPECT_TRUE(CheckRequestCounts(kAlwaysReportIndex, 0u, 0u));
228 } 224 }
229 225
230 // Make sure the monitor does not log a network-local error. 226 // Make sure the monitor does not log a network-local error.
231 TEST_F(DomainReliabilityMonitorTest, LocalError) { 227 TEST_F(DomainReliabilityMonitorTest, LocalError) {
232 RequestInfo request = MakeRequestInfo(); 228 RequestInfo request = MakeRequestInfo();
233 request.url = GURL("http://example/always_report"); 229 request.url = GURL("http://example/always_report");
234 request.status.set_status(net::URLRequestStatus::FAILED); 230 request.status = net::URLRequestStatus::FromError(net::ERR_CONNECTION_FAILED);
235 request.status.set_error(net::ERR_PROXY_CONNECTION_FAILED);
236 OnRequestLegComplete(request); 231 OnRequestLegComplete(request);
237 232
238 EXPECT_EQ(0u, CountPendingBeacons()); 233 EXPECT_EQ(0u, CountPendingBeacons());
239 EXPECT_TRUE(CheckRequestCounts(kAlwaysReportIndex, 0u, 0u)); 234 EXPECT_TRUE(CheckRequestCounts(kAlwaysReportIndex, 0u, 0u));
240 } 235 }
241 236
242 // Make sure the monitor does not log the proxy's IP if one was used. 237 // Make sure the monitor does not log the proxy's IP if one was used.
243 TEST_F(DomainReliabilityMonitorTest, WasFetchedViaProxy) { 238 TEST_F(DomainReliabilityMonitorTest, WasFetchedViaProxy) {
244 RequestInfo request = MakeRequestInfo(); 239 RequestInfo request = MakeRequestInfo();
245 request.url = GURL("http://example/always_report"); 240 request.url = GURL("http://example/always_report");
(...skipping 24 matching lines...) Expand all
270 EXPECT_EQ(1u, beacons.size()); 265 EXPECT_EQ(1u, beacons.size());
271 EXPECT_TRUE(beacons[0].server_ip.empty()); 266 EXPECT_TRUE(beacons[0].server_ip.empty());
272 } 267 }
273 268
274 // Make sure the monitor does not log the cached IP returned with a failed 269 // Make sure the monitor does not log the cached IP returned with a failed
275 // cache revalidation request. 270 // cache revalidation request.
276 TEST_F(DomainReliabilityMonitorTest, NoCachedIPFromFailedRevalidationRequest) { 271 TEST_F(DomainReliabilityMonitorTest, NoCachedIPFromFailedRevalidationRequest) {
277 RequestInfo request = MakeRequestInfo(); 272 RequestInfo request = MakeRequestInfo();
278 request.url = GURL("http://example/always_report"); 273 request.url = GURL("http://example/always_report");
279 request.response_info.was_cached = true; 274 request.response_info.was_cached = true;
280 request.status.set_status(net::URLRequestStatus::FAILED); 275 request.status =
281 request.status.set_error(net::ERR_NAME_RESOLUTION_FAILED); 276 net::URLRequestStatus::FromError(net::ERR_NAME_RESOLUTION_FAILED);
282 OnRequestLegComplete(request); 277 OnRequestLegComplete(request);
283 278
284 BeaconVector beacons; 279 BeaconVector beacons;
285 context_->GetQueuedBeaconsForTesting(&beacons); 280 context_->GetQueuedBeaconsForTesting(&beacons);
286 EXPECT_EQ(1u, beacons.size()); 281 EXPECT_EQ(1u, beacons.size());
287 EXPECT_TRUE(beacons[0].server_ip.empty()); 282 EXPECT_TRUE(beacons[0].server_ip.empty());
288 } 283 }
289 284
290 TEST_F(DomainReliabilityMonitorTest, AtLeastOneBakedInConfig) { 285 TEST_F(DomainReliabilityMonitorTest, AtLeastOneBakedInConfig) {
291 DCHECK(kBakedInJsonConfigs[0] != nullptr); 286 DCHECK(kBakedInJsonConfigs[0] != nullptr);
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
337 TEST_F(DomainReliabilityMonitorTest, ClearContexts) { 332 TEST_F(DomainReliabilityMonitorTest, ClearContexts) {
338 // Initially the monitor should have just the test context. 333 // Initially the monitor should have just the test context.
339 EXPECT_EQ(1u, monitor_.contexts_size_for_testing()); 334 EXPECT_EQ(1u, monitor_.contexts_size_for_testing());
340 335
341 monitor_.ClearBrowsingData(CLEAR_CONTEXTS); 336 monitor_.ClearBrowsingData(CLEAR_CONTEXTS);
342 337
343 // Clearing contexts should leave the monitor with none. 338 // Clearing contexts should leave the monitor with none.
344 EXPECT_EQ(0u, monitor_.contexts_size_for_testing()); 339 EXPECT_EQ(0u, monitor_.contexts_size_for_testing());
345 } 340 }
346 341
342 // TODO(davidben): When https://crbug.com/490311 is resolved, this test can be
343 // removed.
mmenke 2015/06/02 18:41:33 Remove it? But this test is awesome!
347 TEST_F(DomainReliabilityMonitorTest, IgnoreSuccessError) { 344 TEST_F(DomainReliabilityMonitorTest, IgnoreSuccessError) {
348 RequestInfo request = MakeRequestInfo(); 345 RequestInfo request = MakeRequestInfo();
349 request.url = GURL("http://example/always_report"); 346 request.url = GURL("http://example/always_report");
350 request.status.set_error(net::ERR_QUIC_PROTOCOL_ERROR); 347 request.status = net::URLRequestStatus(net::URLRequestStatus::SUCCESS,
348 net::ERR_QUIC_PROTOCOL_ERROR);
351 OnRequestLegComplete(request); 349 OnRequestLegComplete(request);
352 350
353 BeaconVector beacons; 351 BeaconVector beacons;
354 context_->GetQueuedBeaconsForTesting(&beacons); 352 context_->GetQueuedBeaconsForTesting(&beacons);
355 EXPECT_EQ(1u, beacons.size()); 353 EXPECT_EQ(1u, beacons.size());
356 EXPECT_EQ(net::OK, beacons[0].chrome_error); 354 EXPECT_EQ(net::OK, beacons[0].chrome_error);
357 355
358 EXPECT_TRUE(CheckRequestCounts(kAlwaysReportIndex, 1u, 0u)); 356 EXPECT_TRUE(CheckRequestCounts(kAlwaysReportIndex, 1u, 0u));
359 } 357 }
360 358
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
418 request.url = GURL("http://test.wildcard/always_report"); 416 request.url = GURL("http://test.wildcard/always_report");
419 OnRequestLegComplete(request); 417 OnRequestLegComplete(request);
420 418
421 EXPECT_TRUE(CheckRequestCounts(context1, kAlwaysReportIndex, 1u, 0u)); 419 EXPECT_TRUE(CheckRequestCounts(context1, kAlwaysReportIndex, 1u, 0u));
422 EXPECT_TRUE(CheckRequestCounts(context2, kAlwaysReportIndex, 0u, 0u)); 420 EXPECT_TRUE(CheckRequestCounts(context2, kAlwaysReportIndex, 0u, 0u));
423 } 421 }
424 422
425 } // namespace 423 } // namespace
426 424
427 } // namespace domain_reliability 425 } // namespace domain_reliability
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698