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

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

Issue 404363003: Domain Reliability: Add wildcard domain support. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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 unified diff | Download patch | Annotate | Revision Log
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 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 80
81 size_t CountPendingBeacons(size_t index) { 81 size_t CountPendingBeacons(size_t index) {
82 BeaconVector beacons; 82 BeaconVector beacons;
83 context_->GetQueuedDataForTesting(index, &beacons, NULL, NULL); 83 context_->GetQueuedDataForTesting(index, &beacons, NULL, NULL);
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_->GetQueuedDataForTesting(index, NULL, &successful, &failed); 101 context->GetQueuedDataForTesting(index, NULL, &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 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 OnRequestLegComplete(request); 312 OnRequestLegComplete(request);
299 313
300 EXPECT_EQ(1u, CountPendingBeacons(kAlwaysReportIndex)); 314 EXPECT_EQ(1u, CountPendingBeacons(kAlwaysReportIndex));
301 EXPECT_TRUE(CheckRequestCounts(kAlwaysReportIndex, 1u, 0u)); 315 EXPECT_TRUE(CheckRequestCounts(kAlwaysReportIndex, 1u, 0u));
302 316
303 BeaconVector beacons; 317 BeaconVector beacons;
304 context_->GetQueuedDataForTesting(kAlwaysReportIndex, &beacons, NULL, NULL); 318 context_->GetQueuedDataForTesting(kAlwaysReportIndex, &beacons, NULL, NULL);
305 EXPECT_EQ(net::OK, beacons[0].chrome_error); 319 EXPECT_EQ(net::OK, beacons[0].chrome_error);
306 } 320 }
307 321
322 TEST_F(DomainReliabilityMonitorTest, WildcardMatchesSelf) {
323 DomainReliabilityContext* context = CreateAndAddContext("*.wildcard");
324
325 RequestInfo request = MakeRequestInfo();
326 request.url = GURL("http://wildcard/always_report");
327 OnRequestLegComplete(request);
328 EXPECT_TRUE(CheckRequestCounts(context, kAlwaysReportIndex, 1u, 0u));
329 }
330
331 TEST_F(DomainReliabilityMonitorTest, WildcardMatchesSubdomain) {
332 DomainReliabilityContext* context = CreateAndAddContext("*.wildcard");
333
334 RequestInfo request = MakeRequestInfo();
335 request.url = GURL("http://test.wildcard/always_report");
336 OnRequestLegComplete(request);
337 EXPECT_TRUE(CheckRequestCounts(context, kAlwaysReportIndex, 1u, 0u));
338 }
339
340 TEST_F(DomainReliabilityMonitorTest, WildcardDoesntMatchSubsubdomain) {
341 DomainReliabilityContext* context = CreateAndAddContext("*.wildcard");
342
343 RequestInfo request = MakeRequestInfo();
344 request.url = GURL("http://test.test.wildcard/always_report");
345 OnRequestLegComplete(request);
346 EXPECT_TRUE(CheckRequestCounts(context, kAlwaysReportIndex, 0u, 0u));
347 }
348
349 TEST_F(DomainReliabilityMonitorTest, WildcardPrefersSelfToSelfWildcard) {
350 DomainReliabilityContext* context1 = CreateAndAddContext("wildcard");
351 DomainReliabilityContext* context2 = CreateAndAddContext("*.wildcard");
352
353 RequestInfo request = MakeRequestInfo();
354 request.url = GURL("http://wildcard/always_report");
355 OnRequestLegComplete(request);
356
357 EXPECT_TRUE(CheckRequestCounts(context1, kAlwaysReportIndex, 1u, 0u));
358 EXPECT_TRUE(CheckRequestCounts(context2, kAlwaysReportIndex, 0u, 0u));
359 }
360
361 TEST_F(DomainReliabilityMonitorTest, WildcardPrefersSelfToParentWildcard) {
362 DomainReliabilityContext* context1 = CreateAndAddContext("test.wildcard");
363 DomainReliabilityContext* context2 = CreateAndAddContext("*.wildcard");
364
365 RequestInfo request = MakeRequestInfo();
366 request.url = GURL("http://test.wildcard/always_report");
367 OnRequestLegComplete(request);
368
369 EXPECT_TRUE(CheckRequestCounts(context1, kAlwaysReportIndex, 1u, 0u));
370 EXPECT_TRUE(CheckRequestCounts(context2, kAlwaysReportIndex, 0u, 0u));
371 }
372
373 TEST_F(DomainReliabilityMonitorTest,
374 WildcardPrefersSelfWildcardToParentWildcard) {
375 DomainReliabilityContext* context1 = CreateAndAddContext("*.test.wildcard");
376 DomainReliabilityContext* context2 = CreateAndAddContext("*.wildcard");
377
378 RequestInfo request = MakeRequestInfo();
379 request.url = GURL("http://test.wildcard/always_report");
380 OnRequestLegComplete(request);
381
382 EXPECT_TRUE(CheckRequestCounts(context1, kAlwaysReportIndex, 1u, 0u));
383 EXPECT_TRUE(CheckRequestCounts(context2, kAlwaysReportIndex, 0u, 0u));
384 }
385
308 } // namespace 386 } // namespace
309 387
310 } // namespace domain_reliability 388 } // namespace domain_reliability
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698