| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/offline_pages/background/request_queue.h" | 5 #include "components/offline_pages/background/request_queue.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/test/test_simple_task_runner.h" | 10 #include "base/test/test_simple_task_runner.h" |
| (...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 377 PumpLoop(); | 377 PumpLoop(); |
| 378 | 378 |
| 379 // Try to update request1 when only request2 is in the queue. | 379 // Try to update request1 when only request2 is in the queue. |
| 380 queue()->UpdateRequest( | 380 queue()->UpdateRequest( |
| 381 request1, | 381 request1, |
| 382 base::Bind(&RequestQueueTest::UpdateRequestDone, base::Unretained(this))); | 382 base::Bind(&RequestQueueTest::UpdateRequestDone, base::Unretained(this))); |
| 383 PumpLoop(); | 383 PumpLoop(); |
| 384 ASSERT_EQ(UpdateRequestResult::REQUEST_DOES_NOT_EXIST, last_update_result()); | 384 ASSERT_EQ(UpdateRequestResult::REQUEST_DOES_NOT_EXIST, last_update_result()); |
| 385 } | 385 } |
| 386 | 386 |
| 387 TEST_F(RequestQueueTest, MarkAttemptStarted) { |
| 388 // First add a request. Retry count will be set to 0. |
| 389 base::Time creation_time = base::Time::Now(); |
| 390 SavePageRequest request(kRequestId, kUrl, kClientId, creation_time, |
| 391 kUserRequested); |
| 392 queue()->AddRequest(request, base::Bind(&RequestQueueTest::AddRequestDone, |
| 393 base::Unretained(this))); |
| 394 PumpLoop(); |
| 395 |
| 396 base::Time before_time = base::Time::Now(); |
| 397 // Update the request, ensure it succeeded. |
| 398 queue()->MarkAttemptStarted(kRequestId, |
| 399 base::Bind(&RequestQueueTest::UpdateRequestsDone, |
| 400 base::Unretained(this))); |
| 401 PumpLoop(); |
| 402 ASSERT_EQ(1ul, update_requests_result()->item_statuses.size()); |
| 403 EXPECT_EQ(kRequestId, update_requests_result()->item_statuses.at(0).first); |
| 404 EXPECT_EQ(ItemActionStatus::SUCCESS, |
| 405 update_requests_result()->item_statuses.at(0).second); |
| 406 EXPECT_EQ(1UL, update_requests_result()->updated_items.size()); |
| 407 EXPECT_LE(before_time, |
| 408 update_requests_result()->updated_items.at(0).last_attempt_time()); |
| 409 EXPECT_GE(base::Time::Now(), |
| 410 update_requests_result()->updated_items.at(0).last_attempt_time()); |
| 411 EXPECT_EQ( |
| 412 1, update_requests_result()->updated_items.at(0).started_attempt_count()); |
| 413 EXPECT_EQ(SavePageRequest::RequestState::PRERENDERING, |
| 414 update_requests_result()->updated_items.at(0).request_state()); |
| 415 |
| 416 queue()->GetRequests( |
| 417 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this))); |
| 418 PumpLoop(); |
| 419 EXPECT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result()); |
| 420 ASSERT_EQ(1ul, last_requests().size()); |
| 421 EXPECT_EQ(update_requests_result()->updated_items.at(0), |
| 422 *last_requests().at(0)); |
| 423 } |
| 424 |
| 425 TEST_F(RequestQueueTest, MarkAttempStartedRequestNotPresent) { |
| 426 // First add a request. Retry count will be set to 0. |
| 427 base::Time creation_time = base::Time::Now(); |
| 428 // This request is never put into the queue. |
| 429 SavePageRequest request1(kRequestId, kUrl, kClientId, creation_time, |
| 430 kUserRequested); |
| 431 |
| 432 queue()->MarkAttemptStarted(kRequestId, |
| 433 base::Bind(&RequestQueueTest::UpdateRequestsDone, |
| 434 base::Unretained(this))); |
| 435 PumpLoop(); |
| 436 ASSERT_EQ(1ul, update_requests_result()->item_statuses.size()); |
| 437 EXPECT_EQ(kRequestId, update_requests_result()->item_statuses.at(0).first); |
| 438 EXPECT_EQ(ItemActionStatus::NOT_FOUND, |
| 439 update_requests_result()->item_statuses.at(0).second); |
| 440 EXPECT_EQ(0ul, update_requests_result()->updated_items.size()); |
| 441 } |
| 442 |
| 387 } // namespace offline_pages | 443 } // namespace offline_pages |
| OLD | NEW |