Index: components/domain_reliability/context_unittest.cc |
diff --git a/components/domain_reliability/context_unittest.cc b/components/domain_reliability/context_unittest.cc |
index ca71b71ff6ab4a7c2fc7452b82bc9b8fb6c7ec1f..b63616d42f4dbb1cf8b8b99475b97c84166fef77 100644 |
--- a/components/domain_reliability/context_unittest.cc |
+++ b/components/domain_reliability/context_unittest.cc |
@@ -21,20 +21,20 @@ |
namespace domain_reliability { |
namespace { |
-typedef std::vector<DomainReliabilityBeacon> BeaconVector; |
- |
-DomainReliabilityBeacon MakeBeacon(MockableTime* time) { |
- DomainReliabilityBeacon beacon; |
- beacon.domain = "localhost"; |
- beacon.status = "ok"; |
- beacon.chrome_error = net::OK; |
- beacon.server_ip = "127.0.0.1"; |
- beacon.was_proxied = false; |
- beacon.protocol = "HTTP"; |
- beacon.http_response_code = 200; |
- beacon.elapsed = base::TimeDelta::FromMilliseconds(250); |
- beacon.start_time = time->NowTicks() - beacon.elapsed; |
- return beacon; |
+typedef std::vector<const DomainReliabilityBeacon*> BeaconVector; |
+ |
+scoped_ptr<DomainReliabilityBeacon> MakeBeacon(MockableTime* time) { |
+ scoped_ptr<DomainReliabilityBeacon> beacon(new DomainReliabilityBeacon()); |
+ beacon->url = GURL("https://localhost/"); |
+ beacon->status = "tcp.connection_reset"; |
+ beacon->chrome_error = net::ERR_CONNECTION_RESET; |
+ beacon->server_ip = "127.0.0.1"; |
+ beacon->was_proxied = false; |
+ beacon->protocol = "HTTP"; |
+ beacon->http_response_code = -1; |
+ beacon->elapsed = base::TimeDelta::FromMilliseconds(250); |
+ beacon->start_time = time->NowTicks() - beacon->elapsed; |
+ return beacon.Pass(); |
} |
class DomainReliabilityContextTest : public testing::Test { |
@@ -89,14 +89,6 @@ class DomainReliabilityContextTest : public testing::Test { |
return beacons.empty(); |
} |
- bool CheckCounts(size_t index, |
- unsigned expected_successful, |
- unsigned expected_failed) { |
- unsigned successful, failed; |
- context_.GetRequestCountsForTesting(index, &successful, &failed); |
- return successful == expected_successful && failed == expected_failed; |
- } |
- |
MockTime time_; |
base::TimeTicks last_network_change_time_; |
DomainReliabilityDispatcher dispatcher_; |
@@ -125,65 +117,32 @@ class DomainReliabilityContextTest : public testing::Test { |
TEST_F(DomainReliabilityContextTest, Create) { |
EXPECT_TRUE(CheckNoBeacons()); |
- EXPECT_TRUE(CheckCounts(0, 0, 0)); |
- EXPECT_TRUE(CheckCounts(1, 0, 0)); |
-} |
- |
-TEST_F(DomainReliabilityContextTest, NoResource) { |
- GURL url("http://example/no_resource"); |
- DomainReliabilityBeacon beacon = MakeBeacon(&time_); |
- context_.OnBeacon(url, beacon); |
- |
- EXPECT_TRUE(CheckNoBeacons()); |
- EXPECT_TRUE(CheckCounts(0, 0, 0)); |
- EXPECT_TRUE(CheckCounts(1, 0, 0)); |
} |
-TEST_F(DomainReliabilityContextTest, NeverReport) { |
- GURL url("http://example/never_report"); |
- DomainReliabilityBeacon beacon = MakeBeacon(&time_); |
- context_.OnBeacon(url, beacon); |
- |
- EXPECT_TRUE(CheckNoBeacons()); |
- EXPECT_TRUE(CheckCounts(0, 0, 0)); |
- EXPECT_TRUE(CheckCounts(1, 1, 0)); |
-} |
- |
-TEST_F(DomainReliabilityContextTest, AlwaysReport) { |
- GURL url("http://example/always_report"); |
- DomainReliabilityBeacon beacon = MakeBeacon(&time_); |
- context_.OnBeacon(url, beacon); |
+TEST_F(DomainReliabilityContextTest, Report) { |
+ context_.OnBeacon(MakeBeacon(&time_)); |
BeaconVector beacons; |
context_.GetQueuedBeaconsForTesting(&beacons); |
EXPECT_EQ(1u, beacons.size()); |
- EXPECT_TRUE(CheckCounts(0, 1, 0)); |
- EXPECT_TRUE(CheckCounts(1, 0, 0)); |
} |
-TEST_F(DomainReliabilityContextTest, ReportUpload) { |
- GURL url("http://example/always_report"); |
- DomainReliabilityBeacon beacon = MakeBeacon(&time_); |
- context_.OnBeacon(url, beacon); |
+TEST_F(DomainReliabilityContextTest, Upload) { |
+ context_.OnBeacon(MakeBeacon(&time_)); |
BeaconVector beacons; |
context_.GetQueuedBeaconsForTesting(&beacons); |
EXPECT_EQ(1u, beacons.size()); |
- EXPECT_TRUE(CheckCounts(0, 1, 0)); |
- EXPECT_TRUE(CheckCounts(1, 0, 0)); |
// N.B.: Assumes max_delay is 5 minutes. |
const char* kExpectedReport = "{" |
- "\"config_version\":\"1\"," |
- "\"entries\":[{\"domain\":\"localhost\"," |
- "\"http_response_code\":200,\"network_changed\":false," |
- "\"protocol\":\"HTTP\",\"request_age_ms\":300250," |
- "\"request_elapsed_ms\":250,\"resource\":\"always_report\"," |
- "\"server_ip\":\"127.0.0.1\",\"status\":\"ok\"," |
- "\"was_proxied\":false}]," |
- "\"reporter\":\"test-reporter\"," |
- "\"resources\":[{\"failed_requests\":0,\"name\":\"always_report\"," |
- "\"successful_requests\":1}]}"; |
+ "\"entries\":[" |
+ "{\"failure_data\":{\"custom_error\":\"net::ERR_CONNECTION_RESET\"}," |
+ "\"network_changed\":false,\"protocol\":\"HTTP\"," |
+ "\"request_age_ms\":300250,\"request_elapsed_ms\":250," |
+ "\"server_ip\":\"127.0.0.1\",\"status\":\"tcp.connection_reset\"," |
+ "\"url\":\"https://localhost/\",\"was_proxied\":false}]," |
+ "\"reporter\":\"test-reporter\"}"; |
time_.Advance(max_delay()); |
EXPECT_TRUE(upload_pending()); |
@@ -195,38 +154,28 @@ TEST_F(DomainReliabilityContextTest, ReportUpload) { |
CallUploadCallback(result); |
EXPECT_TRUE(CheckNoBeacons()); |
- EXPECT_TRUE(CheckCounts(0, 0, 0)); |
- EXPECT_TRUE(CheckCounts(1, 0, 0)); |
} |
-TEST_F(DomainReliabilityContextTest, ReportUpload_NetworkChanged) { |
- GURL url("http://example/always_report"); |
- DomainReliabilityBeacon beacon = MakeBeacon(&time_); |
- context_.OnBeacon(url, beacon); |
+TEST_F(DomainReliabilityContextTest, Upload_NetworkChanged) { |
+ context_.OnBeacon(MakeBeacon(&time_)); |
BeaconVector beacons; |
context_.GetQueuedBeaconsForTesting(&beacons); |
EXPECT_EQ(1u, beacons.size()); |
- EXPECT_TRUE(CheckCounts(0, 1, 0)); |
- EXPECT_TRUE(CheckCounts(1, 0, 0)); |
// N.B.: Assumes max_delay is 5 minutes. |
const char* kExpectedReport = "{" |
- "\"config_version\":\"1\"," |
- "\"entries\":[{\"domain\":\"localhost\"," |
- "\"http_response_code\":200,\"network_changed\":true," |
- "\"protocol\":\"HTTP\",\"request_age_ms\":300250," |
- "\"request_elapsed_ms\":250,\"resource\":\"always_report\"," |
- "\"server_ip\":\"127.0.0.1\",\"status\":\"ok\"," |
- "\"was_proxied\":false}]," |
- "\"reporter\":\"test-reporter\"," |
- "\"resources\":[{\"failed_requests\":0,\"name\":\"always_report\"," |
- "\"successful_requests\":1}]}"; |
+ "\"entries\":[" |
+ "{\"failure_data\":{\"custom_error\":\"net::ERR_CONNECTION_RESET\"}," |
+ "\"network_changed\":true,\"protocol\":\"HTTP\"," |
+ "\"request_age_ms\":300250,\"request_elapsed_ms\":250," |
+ "\"server_ip\":\"127.0.0.1\",\"status\":\"tcp.connection_reset\"," |
+ "\"url\":\"https://localhost/\",\"was_proxied\":false}]," |
+ "\"reporter\":\"test-reporter\"}"; |
// Simulate a network change after the request but before the upload. |
last_network_change_time_ = time_.NowTicks(); |
time_.Advance(max_delay()); |
- |
EXPECT_TRUE(upload_pending()); |
EXPECT_EQ(kExpectedReport, upload_report()); |
EXPECT_EQ(GURL("https://exampleuploader/upload"), upload_url()); |
@@ -236,9 +185,9 @@ TEST_F(DomainReliabilityContextTest, ReportUpload_NetworkChanged) { |
CallUploadCallback(result); |
EXPECT_TRUE(CheckNoBeacons()); |
- EXPECT_TRUE(CheckCounts(0, 0, 0)); |
- EXPECT_TRUE(CheckCounts(1, 0, 0)); |
} |
+// TODO(ttuttle): Add beacon_unittest.cc to test serialization. |
Randy Smith (Not in Mondays)
2015/11/03 21:48:12
Why not in this CL?
Deprecated (see juliatuttle)
2015/11/06 17:22:29
No rush; we test it above as part of uploads. I ju
Randy Smith (Not in Mondays)
2015/11/09 21:23:24
Acknowledged.
|
+ |
} // namespace |
} // namespace domain_reliability |