| Index: components/domain_reliability/context_unittest.cc
|
| diff --git a/components/domain_reliability/context_unittest.cc b/components/domain_reliability/context_unittest.cc
|
| index c54322b8e541a61a94bd1fcbf99057898e2c9b25..f73ae8b2cf515a45494ead5f6843ce2437a4d2c0 100644
|
| --- a/components/domain_reliability/context_unittest.cc
|
| +++ b/components/domain_reliability/context_unittest.cc
|
| @@ -39,7 +39,8 @@ DomainReliabilityBeacon MakeBeacon(MockableTime* time) {
|
| class DomainReliabilityContextTest : public testing::Test {
|
| protected:
|
| DomainReliabilityContextTest()
|
| - : dispatcher_(&time_),
|
| + : last_network_change_time_(time_.NowTicks()),
|
| + dispatcher_(&time_),
|
| params_(MakeTestSchedulerParams()),
|
| uploader_(base::Bind(&DomainReliabilityContextTest::OnUploadRequest,
|
| base::Unretained(this))),
|
| @@ -47,6 +48,7 @@ class DomainReliabilityContextTest : public testing::Test {
|
| context_(&time_,
|
| params_,
|
| upload_reporter_string_,
|
| + &last_network_change_time_,
|
| &dispatcher_,
|
| &uploader_,
|
| MakeTestConfig().Pass()),
|
| @@ -90,6 +92,7 @@ class DomainReliabilityContextTest : public testing::Test {
|
| }
|
|
|
| MockTime time_;
|
| + base::TimeTicks last_network_change_time_;
|
| DomainReliabilityDispatcher dispatcher_;
|
| DomainReliabilityScheduler::Params params_;
|
| MockUploader uploader_;
|
| @@ -186,5 +189,40 @@ TEST_F(DomainReliabilityContextTest, ReportUpload) {
|
| 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);
|
| +
|
| + 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\"}],"
|
| + "\"reporter\":\"test-reporter\","
|
| + "\"resources\":[{\"failed_requests\":0,\"name\":\"always_report\","
|
| + "\"successful_requests\":1}]}";
|
| +
|
| + time_.Advance(max_delay());
|
| + last_network_change_time_ = time_.NowTicks();
|
| + EXPECT_TRUE(upload_pending());
|
| + EXPECT_EQ(kExpectedReport, upload_report());
|
| + EXPECT_EQ(GURL("https://exampleuploader/upload"), upload_url());
|
| + CallUploadCallback(true);
|
| +
|
| + EXPECT_TRUE(CheckNoBeacons());
|
| + EXPECT_TRUE(CheckCounts(0, 0, 0));
|
| + EXPECT_TRUE(CheckCounts(1, 0, 0));
|
| +}
|
| +
|
| } // namespace
|
| } // namespace domain_reliability
|
|
|