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

Unified Diff: sync/internal_api/attachments/attachment_uploader_impl_unittest.cc

Issue 554743004: Update AttachmentServiceImpl to retry attachment uploads. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Merge with master. Created 6 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: sync/internal_api/attachments/attachment_uploader_impl_unittest.cc
diff --git a/sync/internal_api/attachments/attachment_uploader_impl_unittest.cc b/sync/internal_api/attachments/attachment_uploader_impl_unittest.cc
index 9cfc625b3b8247893ab2618a87ec8093090dbca6..e682253e9cea8801cacfc9616dafd9b016b2ce89 100644
--- a/sync/internal_api/attachments/attachment_uploader_impl_unittest.cc
+++ b/sync/internal_api/attachments/attachment_uploader_impl_unittest.cc
@@ -509,7 +509,7 @@ TEST_F(AttachmentUploaderImplTest, UploadAttachment_FailToGetToken) {
// See that the done callback was invoked.
ASSERT_EQ(1U, upload_results().size());
- EXPECT_EQ(AttachmentUploader::UPLOAD_UNSPECIFIED_ERROR, upload_results()[0]);
+ EXPECT_EQ(AttachmentUploader::UPLOAD_TRANSIENT_ERROR, upload_results()[0]);
ASSERT_EQ(1U, attachment_ids().size());
EXPECT_EQ(attachment.GetId(), attachment_ids()[0]);
@@ -531,6 +531,43 @@ TEST_F(AttachmentUploaderImplTest, UploadAttachment_ServiceUnavilable) {
// See that the done callback was invoked.
ASSERT_EQ(1U, upload_results().size());
+ EXPECT_EQ(AttachmentUploader::UPLOAD_TRANSIENT_ERROR, upload_results()[0]);
+ ASSERT_EQ(1U, attachment_ids().size());
+ EXPECT_EQ(attachment.GetId(), attachment_ids()[0]);
+
+ // See that the HTTP server received one request.
+ ASSERT_EQ(1U, http_requests_received().size());
+ const HttpRequest& http_request = http_requests_received().front();
+ EXPECT_EQ(net::test_server::METHOD_POST, http_request.method);
+ std::string expected_relative_url(kAttachments +
+ attachment.GetId().GetProto().unique_id());
+ EXPECT_EQ(expected_relative_url, http_request.relative_url);
+ EXPECT_TRUE(http_request.has_content);
+ EXPECT_EQ(kAttachmentData, http_request.content);
+ std::string expected_header(kAuthorization);
+ const std::string header_name(kAuthorization);
+ const std::string header_value(std::string("Bearer ") + kAccessToken);
+ EXPECT_THAT(http_request.headers,
+ testing::Contains(testing::Pair(header_name, header_value)));
+
+ // See that we did not invalidate the token.
+ ASSERT_EQ(0, token_service().num_invalidate_token());
+}
+
+// Verify that we "403 Forbidden" as a non-transient error.
+TEST_F(AttachmentUploaderImplTest, UploadAttachment_Forbidden) {
+ token_service().AddAccount(kAccountId);
+ request_handler().SetStatusCode(net::HTTP_FORBIDDEN);
+
+ scoped_refptr<base::RefCountedString> some_data(new base::RefCountedString);
+ some_data->data() = kAttachmentData;
+ Attachment attachment = Attachment::Create(some_data);
+ uploader()->UploadAttachment(attachment, upload_callback());
+
+ RunAndWaitFor(1);
+
+ // See that the done callback was invoked.
+ ASSERT_EQ(1U, upload_results().size());
EXPECT_EQ(AttachmentUploader::UPLOAD_UNSPECIFIED_ERROR, upload_results()[0]);
ASSERT_EQ(1U, attachment_ids().size());
EXPECT_EQ(attachment.GetId(), attachment_ids()[0]);
@@ -569,7 +606,7 @@ TEST_F(AttachmentUploaderImplTest, UploadAttachment_BadToken) {
// See that the done callback was invoked.
ASSERT_EQ(1U, upload_results().size());
- EXPECT_EQ(AttachmentUploader::UPLOAD_UNSPECIFIED_ERROR, upload_results()[0]);
+ EXPECT_EQ(AttachmentUploader::UPLOAD_TRANSIENT_ERROR, upload_results()[0]);
ASSERT_EQ(1U, attachment_ids().size());
EXPECT_EQ(attachment.GetId(), attachment_ids()[0]);
« no previous file with comments | « sync/internal_api/attachments/attachment_uploader_impl.cc ('k') | sync/internal_api/attachments/task_queue.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698