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

Unified Diff: chrome/browser/chromeos/policy/upload_job_unittest.cc

Issue 1875443003: Retry uploading in UploadJobImpl when error occurs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove missing method Created 4 years, 8 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: chrome/browser/chromeos/policy/upload_job_unittest.cc
diff --git a/chrome/browser/chromeos/policy/upload_job_unittest.cc b/chrome/browser/chromeos/policy/upload_job_unittest.cc
index 501c4b5b20fbea56951b89707c58e0eb1c45e152..afc3d9bcb7ae6a51efdebc7be1faad0625c9fdf4 100644
--- a/chrome/browser/chromeos/policy/upload_job_unittest.cc
+++ b/chrome/browser/chromeos/policy/upload_job_unittest.cc
@@ -275,6 +275,7 @@ TEST_F(UploadFlowTest, TokenExpired) {
TEST_F(UploadFlowTest, TokenInvalid) {
oauth2_service_.AddTokenToQueue(kTokenInvalid);
oauth2_service_.AddTokenToQueue(kTokenInvalid);
+ oauth2_service_.AddTokenToQueue(kTokenInvalid);
SetExpectedError(std::unique_ptr<UploadJob::ErrorCode>(
new UploadJob::ErrorCode(UploadJob::AUTHENTICATION_ERROR)));
@@ -284,6 +285,18 @@ TEST_F(UploadFlowTest, TokenInvalid) {
run_loop_.Run();
}
+TEST_F(UploadFlowTest, TokenMultipleTries) {
+ oauth2_service_.SetTokenValid(kTokenValid);
+ oauth2_service_.AddTokenToQueue(kTokenInvalid);
+ oauth2_service_.AddTokenToQueue(kTokenInvalid);
+ oauth2_service_.AddTokenToQueue(kTokenValid);
+
+ std::unique_ptr<UploadJob> upload_job = PrepareUploadJob(
+ base::WrapUnique(new UploadJobImpl::RandomMimeBoundaryGenerator));
+ upload_job->Start();
+ run_loop_.Run();
+}
+
TEST_F(UploadFlowTest, TokenFetchFailure) {
SetExpectedError(std::unique_ptr<UploadJob::ErrorCode>(
new UploadJob::ErrorCode(UploadJob::AUTHENTICATION_ERROR)));
@@ -294,6 +307,38 @@ TEST_F(UploadFlowTest, TokenFetchFailure) {
run_loop_.Run();
}
+class UploadServerErrorTest : public UploadJobTestBase {
+ public:
+ UploadServerErrorTest() {}
+
+ // UploadJobTestBase:
+ void SetUp() override {
+ UploadJobTestBase::SetUp();
+ test_server_.RegisterRequestHandler(base::Bind(
+ &UploadServerErrorTest::HandlePostRequest, base::Unretained(this)));
+ }
+
+ std::unique_ptr<net::test_server::HttpResponse> HandlePostRequest(
+ const net::test_server::HttpRequest& request) {
+ std::unique_ptr<net::test_server::BasicHttpResponse> response(
+ new net::test_server::BasicHttpResponse);
+ response->set_code(net::HTTP_INTERNAL_SERVER_ERROR);
+ return std::move(response);
+ }
+};
+
+TEST_F(UploadServerErrorTest, InternalServerError) {
+ oauth2_service_.AddTokenToQueue(kTokenValid);
+
+ SetExpectedError(std::unique_ptr<UploadJob::ErrorCode>(
+ new UploadJob::ErrorCode(UploadJob::SERVER_ERROR)));
+
+ std::unique_ptr<UploadJob> upload_job = PrepareUploadJob(
+ base::WrapUnique(new UploadJobImpl::RandomMimeBoundaryGenerator));
+ upload_job->Start();
+ run_loop_.Run();
+}
+
class UploadRequestTest : public UploadJobTestBase {
public:
UploadRequestTest() {}

Powered by Google App Engine
This is Rietveld 408576698