| Index: components/domain_reliability/uploader_unittest.cc
|
| diff --git a/components/domain_reliability/uploader_unittest.cc b/components/domain_reliability/uploader_unittest.cc
|
| index 4aeb6ddc024ff3c280fb617614f901cc7c39c5d6..0b99fc0655df8652868801a508cd2c30c8515e5b 100644
|
| --- a/components/domain_reliability/uploader_unittest.cc
|
| +++ b/components/domain_reliability/uploader_unittest.cc
|
| @@ -91,7 +91,7 @@ class UploadMockURLRequestJob : public net::URLRequestJob {
|
|
|
| if (result_.net_error == net::OK)
|
| NotifyHeadersComplete();
|
| - else
|
| + else if (result_.net_error != net::ERR_IO_PENDING)
|
| NotifyStartError(net::URLRequestStatus::FromError(result_.net_error));
|
| }
|
|
|
| @@ -111,7 +111,7 @@ class UploadMockURLRequestJob : public net::URLRequestJob {
|
|
|
| class UploadInterceptor : public net::URLRequestInterceptor {
|
| public:
|
| - UploadInterceptor() : last_upload_depth_(-1) {}
|
| + UploadInterceptor() : request_count_(0), last_upload_depth_(-1) {}
|
|
|
| ~UploadInterceptor() override {
|
| EXPECT_TRUE(results_.empty());
|
| @@ -127,6 +127,8 @@ class UploadInterceptor : public net::URLRequestInterceptor {
|
| last_upload_depth_ =
|
| DomainReliabilityUploader::GetURLRequestUploadDepth(*request);
|
|
|
| + ++request_count_;
|
| +
|
| return new UploadMockURLRequestJob(request, delegate, result);
|
| }
|
|
|
| @@ -155,10 +157,12 @@ class UploadInterceptor : public net::URLRequestInterceptor {
|
| results_.push_back(result);
|
| }
|
|
|
| + int request_count() const { return request_count_; }
|
| int last_upload_depth() const { return last_upload_depth_; }
|
|
|
| private:
|
| mutable std::list<MockUploadResult> results_;
|
| + mutable int request_count_;
|
| mutable int last_upload_depth_;
|
| };
|
|
|
| @@ -204,6 +208,10 @@ class DomainReliabilityUploaderTest : public testing::Test {
|
|
|
| DomainReliabilityUploader* uploader() const { return uploader_.get(); }
|
| UploadInterceptor* interceptor() const { return interceptor_; }
|
| + scoped_refptr<net::TestURLRequestContextGetter>
|
| + url_request_context_getter() {
|
| + return url_request_context_getter_;
|
| + }
|
|
|
| private:
|
| base::MessageLoopForIO message_loop_;
|
| @@ -214,6 +222,7 @@ class DomainReliabilityUploaderTest : public testing::Test {
|
| };
|
|
|
| TEST_F(DomainReliabilityUploaderTest, Null) {
|
| + uploader()->Shutdown();
|
| }
|
|
|
| TEST_F(DomainReliabilityUploaderTest, SuccessfulUpload) {
|
| @@ -224,6 +233,8 @@ TEST_F(DomainReliabilityUploaderTest, SuccessfulUpload) {
|
| base::RunLoop().RunUntilIdle();
|
| EXPECT_EQ(1u, c.called_count());
|
| EXPECT_TRUE(c.last_result().is_success());
|
| +
|
| + uploader()->Shutdown();
|
| }
|
|
|
| TEST_F(DomainReliabilityUploaderTest, NetworkErrorUpload) {
|
| @@ -234,6 +245,8 @@ TEST_F(DomainReliabilityUploaderTest, NetworkErrorUpload) {
|
| base::RunLoop().RunUntilIdle();
|
| EXPECT_EQ(1u, c.called_count());
|
| EXPECT_TRUE(c.last_result().is_failure());
|
| +
|
| + uploader()->Shutdown();
|
| }
|
|
|
| TEST_F(DomainReliabilityUploaderTest, ServerErrorUpload) {
|
| @@ -244,6 +257,8 @@ TEST_F(DomainReliabilityUploaderTest, ServerErrorUpload) {
|
| base::RunLoop().RunUntilIdle();
|
| EXPECT_EQ(1u, c.called_count());
|
| EXPECT_TRUE(c.last_result().is_failure());
|
| +
|
| + uploader()->Shutdown();
|
| }
|
|
|
| TEST_F(DomainReliabilityUploaderTest, RetryAfterUpload) {
|
| @@ -256,6 +271,8 @@ TEST_F(DomainReliabilityUploaderTest, RetryAfterUpload) {
|
| base::RunLoop().RunUntilIdle();
|
| EXPECT_EQ(1u, c.called_count());
|
| EXPECT_TRUE(c.last_result().is_retry_after());
|
| +
|
| + uploader()->Shutdown();
|
| }
|
|
|
| TEST_F(DomainReliabilityUploaderTest, UploadDepth1) {
|
| @@ -267,6 +284,8 @@ TEST_F(DomainReliabilityUploaderTest, UploadDepth1) {
|
| EXPECT_EQ(1u, c.called_count());
|
|
|
| EXPECT_EQ(1, interceptor()->last_upload_depth());
|
| +
|
| + uploader()->Shutdown();
|
| }
|
|
|
| TEST_F(DomainReliabilityUploaderTest, UploadDepth2) {
|
| @@ -278,6 +297,34 @@ TEST_F(DomainReliabilityUploaderTest, UploadDepth2) {
|
| EXPECT_EQ(1u, c.called_count());
|
|
|
| EXPECT_EQ(2, interceptor()->last_upload_depth());
|
| +
|
| + uploader()->Shutdown();
|
| +}
|
| +
|
| +TEST_F(DomainReliabilityUploaderTest, UploadCanceledAtShutdown) {
|
| + interceptor()->ExpectRequestAndReturnError(net::ERR_IO_PENDING);
|
| +
|
| + TestUploadCallback c;
|
| + uploader()->UploadReport("{}", 1, GURL(kUploadURL), c.callback());
|
| + base::RunLoop().RunUntilIdle();
|
| + EXPECT_EQ(1, interceptor()->request_count());
|
| + EXPECT_EQ(0u, c.called_count());
|
| +
|
| + uploader()->Shutdown();
|
| +
|
| + EXPECT_EQ(0u, c.called_count());
|
| +
|
| + url_request_context_getter()->GetURLRequestContext()->AssertNoURLRequests();
|
| +}
|
| +
|
| +TEST_F(DomainReliabilityUploaderTest, NoUploadAfterShutdown) {
|
| + uploader()->Shutdown();
|
| +
|
| + TestUploadCallback c;
|
| + uploader()->UploadReport("{}", 1, GURL(kUploadURL), c.callback());
|
| + base::RunLoop().RunUntilIdle();
|
| + EXPECT_EQ(1u, c.called_count());
|
| + EXPECT_EQ(0, interceptor()->request_count());
|
| }
|
|
|
| } // namespace
|
|
|