OLD | NEW |
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 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 | 80 |
81 size_t CountPendingBeacons() { | 81 size_t CountPendingBeacons() { |
82 BeaconVector beacons; | 82 BeaconVector beacons; |
83 context_->GetQueuedBeaconsForTesting(&beacons); | 83 context_->GetQueuedBeaconsForTesting(&beacons); |
84 return beacons.size(); | 84 return beacons.size(); |
85 } | 85 } |
86 | 86 |
87 bool CheckRequestCounts(size_t index, | 87 bool CheckRequestCounts(size_t index, |
88 uint32 expected_successful, | 88 uint32 expected_successful, |
89 uint32 expected_failed) { | 89 uint32 expected_failed) { |
| 90 return CheckRequestCounts(context_, |
| 91 index, |
| 92 expected_successful, |
| 93 expected_failed); |
| 94 } |
| 95 |
| 96 bool CheckRequestCounts(DomainReliabilityContext* context, |
| 97 size_t index, |
| 98 uint32 expected_successful, |
| 99 uint32 expected_failed) { |
90 uint32 successful, failed; | 100 uint32 successful, failed; |
91 context_->GetRequestCountsForTesting(index, &successful, &failed); | 101 context->GetRequestCountsForTesting(index, &successful, &failed); |
92 EXPECT_EQ(expected_successful, successful); | 102 EXPECT_EQ(expected_successful, successful); |
93 EXPECT_EQ(expected_failed, failed); | 103 EXPECT_EQ(expected_failed, failed); |
94 return expected_successful == successful && expected_failed == failed; | 104 return expected_successful == successful && expected_failed == failed; |
95 } | 105 } |
96 | 106 |
| 107 DomainReliabilityContext* CreateAndAddContext(const std::string& domain) { |
| 108 return monitor_.AddContextForTesting(MakeTestConfigWithDomain(domain)); |
| 109 } |
| 110 |
97 scoped_refptr<base::TestSimpleTaskRunner> network_task_runner_; | 111 scoped_refptr<base::TestSimpleTaskRunner> network_task_runner_; |
98 scoped_refptr<net::URLRequestContextGetter> url_request_context_getter_; | 112 scoped_refptr<net::URLRequestContextGetter> url_request_context_getter_; |
99 MockTime* time_; | 113 MockTime* time_; |
100 DomainReliabilityMonitor monitor_; | 114 DomainReliabilityMonitor monitor_; |
101 DomainReliabilityContext* context_; | 115 DomainReliabilityContext* context_; |
102 DomainReliabilityMonitor::RequestInfo request_; | 116 DomainReliabilityMonitor::RequestInfo request_; |
103 }; | 117 }; |
104 | 118 |
105 namespace { | 119 namespace { |
106 | 120 |
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
294 OnRequestLegComplete(request); | 308 OnRequestLegComplete(request); |
295 | 309 |
296 BeaconVector beacons; | 310 BeaconVector beacons; |
297 context_->GetQueuedBeaconsForTesting(&beacons); | 311 context_->GetQueuedBeaconsForTesting(&beacons); |
298 EXPECT_EQ(1u, beacons.size()); | 312 EXPECT_EQ(1u, beacons.size()); |
299 EXPECT_EQ(net::OK, beacons[0].chrome_error); | 313 EXPECT_EQ(net::OK, beacons[0].chrome_error); |
300 | 314 |
301 EXPECT_TRUE(CheckRequestCounts(kAlwaysReportIndex, 1u, 0u)); | 315 EXPECT_TRUE(CheckRequestCounts(kAlwaysReportIndex, 1u, 0u)); |
302 } | 316 } |
303 | 317 |
| 318 TEST_F(DomainReliabilityMonitorTest, WildcardMatchesSelf) { |
| 319 DomainReliabilityContext* context = CreateAndAddContext("*.wildcard"); |
| 320 |
| 321 RequestInfo request = MakeRequestInfo(); |
| 322 request.url = GURL("http://wildcard/always_report"); |
| 323 OnRequestLegComplete(request); |
| 324 EXPECT_TRUE(CheckRequestCounts(context, kAlwaysReportIndex, 1u, 0u)); |
| 325 } |
| 326 |
| 327 TEST_F(DomainReliabilityMonitorTest, WildcardMatchesSubdomain) { |
| 328 DomainReliabilityContext* context = CreateAndAddContext("*.wildcard"); |
| 329 |
| 330 RequestInfo request = MakeRequestInfo(); |
| 331 request.url = GURL("http://test.wildcard/always_report"); |
| 332 OnRequestLegComplete(request); |
| 333 EXPECT_TRUE(CheckRequestCounts(context, kAlwaysReportIndex, 1u, 0u)); |
| 334 } |
| 335 |
| 336 TEST_F(DomainReliabilityMonitorTest, WildcardDoesntMatchSubsubdomain) { |
| 337 DomainReliabilityContext* context = CreateAndAddContext("*.wildcard"); |
| 338 |
| 339 RequestInfo request = MakeRequestInfo(); |
| 340 request.url = GURL("http://test.test.wildcard/always_report"); |
| 341 OnRequestLegComplete(request); |
| 342 EXPECT_TRUE(CheckRequestCounts(context, kAlwaysReportIndex, 0u, 0u)); |
| 343 } |
| 344 |
| 345 TEST_F(DomainReliabilityMonitorTest, WildcardPrefersSelfToSelfWildcard) { |
| 346 DomainReliabilityContext* context1 = CreateAndAddContext("wildcard"); |
| 347 DomainReliabilityContext* context2 = CreateAndAddContext("*.wildcard"); |
| 348 |
| 349 RequestInfo request = MakeRequestInfo(); |
| 350 request.url = GURL("http://wildcard/always_report"); |
| 351 OnRequestLegComplete(request); |
| 352 |
| 353 EXPECT_TRUE(CheckRequestCounts(context1, kAlwaysReportIndex, 1u, 0u)); |
| 354 EXPECT_TRUE(CheckRequestCounts(context2, kAlwaysReportIndex, 0u, 0u)); |
| 355 } |
| 356 |
| 357 TEST_F(DomainReliabilityMonitorTest, WildcardPrefersSelfToParentWildcard) { |
| 358 DomainReliabilityContext* context1 = CreateAndAddContext("test.wildcard"); |
| 359 DomainReliabilityContext* context2 = CreateAndAddContext("*.wildcard"); |
| 360 |
| 361 RequestInfo request = MakeRequestInfo(); |
| 362 request.url = GURL("http://test.wildcard/always_report"); |
| 363 OnRequestLegComplete(request); |
| 364 |
| 365 EXPECT_TRUE(CheckRequestCounts(context1, kAlwaysReportIndex, 1u, 0u)); |
| 366 EXPECT_TRUE(CheckRequestCounts(context2, kAlwaysReportIndex, 0u, 0u)); |
| 367 } |
| 368 |
| 369 TEST_F(DomainReliabilityMonitorTest, |
| 370 WildcardPrefersSelfWildcardToParentWildcard) { |
| 371 DomainReliabilityContext* context1 = CreateAndAddContext("*.test.wildcard"); |
| 372 DomainReliabilityContext* context2 = CreateAndAddContext("*.wildcard"); |
| 373 |
| 374 RequestInfo request = MakeRequestInfo(); |
| 375 request.url = GURL("http://test.wildcard/always_report"); |
| 376 OnRequestLegComplete(request); |
| 377 |
| 378 EXPECT_TRUE(CheckRequestCounts(context1, kAlwaysReportIndex, 1u, 0u)); |
| 379 EXPECT_TRUE(CheckRequestCounts(context2, kAlwaysReportIndex, 0u, 0u)); |
| 380 } |
| 381 |
304 } // namespace | 382 } // namespace |
305 | 383 |
306 } // namespace domain_reliability | 384 } // namespace domain_reliability |
OLD | NEW |