| 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_store.h" | 5 #include "components/offline_pages/background/request_queue_store.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
| (...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 388 store->AddRequest(request1, | 388 store->AddRequest(request1, |
| 389 base::Bind(&RequestQueueStoreTestBase::AddRequestDone, | 389 base::Bind(&RequestQueueStoreTestBase::AddRequestDone, |
| 390 base::Unretained(this))); | 390 base::Unretained(this))); |
| 391 this->PumpLoop(); | 391 this->PumpLoop(); |
| 392 this->ClearResults(); | 392 this->ClearResults(); |
| 393 | 393 |
| 394 // Pause a request. | 394 // Pause a request. |
| 395 std::vector<int64_t> request_ids{kRequestId}; | 395 std::vector<int64_t> request_ids{kRequestId}; |
| 396 store->ChangeRequestsState( | 396 store->ChangeRequestsState( |
| 397 request_ids, SavePageRequest::RequestState::PAUSED, | 397 request_ids, SavePageRequest::RequestState::PAUSED, |
| 398 base::Bind(&RequestQueueStoreTestBase::UpdateMultipleRequestsDone, | 398 base::Bind(&RequestQueueStoreTestBase::UpdateRequestDone, |
| 399 base::Unretained(this))); | 399 base::Unretained(this))); |
| 400 ASSERT_EQ(LastResult::kNone, this->last_result()); | 400 |
| 401 ASSERT_FALSE(this->last_update_result()); |
| 401 this->PumpLoop(); | 402 this->PumpLoop(); |
| 402 | 403 |
| 403 // Verify pause succeeded | 404 // Marking request paused for verification. |
| 404 ASSERT_EQ(1ul, this->last_multiple_update_results().size()); | 405 SavePageRequest paused_request1(request1); |
| 405 ASSERT_EQ(RequestQueue::UpdateRequestResult::SUCCESS, | 406 paused_request1.MarkAttemptPaused(); |
| 406 this->last_multiple_update_results().at(0).second); | 407 |
| 407 ASSERT_EQ(kRequestId, this->last_requests().at(0)->request_id()); | 408 ASSERT_TRUE(this->last_update_result()); |
| 409 EXPECT_EQ(1UL, this->last_update_result()->item_statuses.size()); |
| 410 EXPECT_EQ(kRequestId, this->last_update_result()->item_statuses[0].first); |
| 411 EXPECT_EQ(ItemActionStatus::SUCCESS, |
| 412 this->last_update_result()->item_statuses[0].second); |
| 413 EXPECT_EQ(1UL, this->last_update_result()->updated_items.size()); |
| 414 EXPECT_EQ(paused_request1, this->last_update_result()->updated_items.at(0)); |
| 415 |
| 408 this->ClearResults(); | 416 this->ClearResults(); |
| 409 | 417 |
| 410 // Get the request from the queue to check it out | 418 // Get the request from the queue to check it out |
| 411 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone, | 419 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone, |
| 412 base::Unretained(this))); | 420 base::Unretained(this))); |
| 413 this->PumpLoop(); | 421 this->PumpLoop(); |
| 414 ASSERT_EQ(LastResult::kTrue, this->last_result()); | 422 ASSERT_EQ(LastResult::kTrue, this->last_result()); |
| 415 // The request should still be in the queue. | 423 // The request should still be in the queue. |
| 416 ASSERT_EQ(1UL, this->last_requests().size()); | 424 ASSERT_EQ(1UL, this->last_requests().size()); |
| 417 // Request 1 should be paused. | 425 // Request 1 should be paused. |
| 418 ASSERT_EQ(SavePageRequest::RequestState::PAUSED, | 426 ASSERT_EQ(paused_request1, *(this->last_requests().at(0))); |
| 419 this->last_requests().at(0)->request_state()); | |
| 420 this->ClearResults(); | 427 this->ClearResults(); |
| 421 | 428 |
| 422 // Now resume the same request we paused. | 429 // Now resume the same request we paused. |
| 423 store->ChangeRequestsState( | 430 store->ChangeRequestsState( |
| 424 request_ids, SavePageRequest::RequestState::AVAILABLE, | 431 request_ids, SavePageRequest::RequestState::AVAILABLE, |
| 425 base::Bind(&RequestQueueStoreTestBase::UpdateMultipleRequestsDone, | 432 base::Bind(&RequestQueueStoreTestBase::UpdateRequestDone, |
| 426 base::Unretained(this))); | 433 base::Unretained(this))); |
| 427 ASSERT_EQ(LastResult::kNone, this->last_result()); | 434 |
| 435 ASSERT_FALSE(this->last_update_result()); |
| 428 this->PumpLoop(); | 436 this->PumpLoop(); |
| 429 | 437 |
| 430 // Verify resume succeeded. | 438 ASSERT_TRUE(this->last_update_result()); |
| 431 ASSERT_EQ(1ul, this->last_multiple_update_results().size()); | 439 EXPECT_EQ(1UL, this->last_update_result()->item_statuses.size()); |
| 432 ASSERT_EQ(RequestQueue::UpdateRequestResult::SUCCESS, | 440 EXPECT_EQ(kRequestId, this->last_update_result()->item_statuses[0].first); |
| 433 this->last_multiple_update_results().at(0).second); | 441 EXPECT_EQ(ItemActionStatus::SUCCESS, |
| 434 ASSERT_EQ(kRequestId, this->last_requests().at(0)->request_id()); | 442 this->last_update_result()->item_statuses[0].second); |
| 443 EXPECT_EQ(1UL, this->last_update_result()->updated_items.size()); |
| 444 EXPECT_EQ(request1, this->last_update_result()->updated_items.at(0)); |
| 445 |
| 435 this->ClearResults(); | 446 this->ClearResults(); |
| 436 | 447 |
| 437 // Get the request from the queue to check it out | 448 // Get the request from the queue to check it out |
| 438 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone, | 449 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone, |
| 439 base::Unretained(this))); | 450 base::Unretained(this))); |
| 440 this->PumpLoop(); | 451 this->PumpLoop(); |
| 441 ASSERT_EQ(LastResult::kTrue, this->last_result()); | 452 ASSERT_EQ(LastResult::kTrue, this->last_result()); |
| 442 // The request should still be in the queue. | 453 // The request should still be in the queue. |
| 443 ASSERT_EQ(1UL, this->last_requests().size()); | 454 ASSERT_EQ(1UL, this->last_requests().size()); |
| 444 // Request 1 should be paused. | 455 // Request 1 should be available. |
| 445 ASSERT_EQ(SavePageRequest::RequestState::AVAILABLE, | 456 ASSERT_EQ(request1, *(this->last_requests().at(0))); |
| 446 this->last_requests().at(0)->request_state()); | |
| 447 this->ClearResults(); | |
| 448 } | 457 } |
| 449 | 458 |
| 450 TYPED_TEST(RequestQueueStoreTest, ResetStore) { | 459 TYPED_TEST(RequestQueueStoreTest, ResetStore) { |
| 451 std::unique_ptr<RequestQueueStore> store(this->BuildStore()); | 460 std::unique_ptr<RequestQueueStore> store(this->BuildStore()); |
| 452 base::Time creation_time = base::Time::Now(); | 461 base::Time creation_time = base::Time::Now(); |
| 453 SavePageRequest original_request( | 462 SavePageRequest original_request( |
| 454 kRequestId, kUrl, kClientId, creation_time, kUserRequested); | 463 kRequestId, kUrl, kClientId, creation_time, kUserRequested); |
| 455 store->AddRequest(original_request, | 464 store->AddRequest(original_request, |
| 456 base::Bind(&RequestQueueStoreTestBase::AddRequestDone, | 465 base::Bind(&RequestQueueStoreTestBase::AddRequestDone, |
| 457 base::Unretained(this))); | 466 base::Unretained(this))); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 495 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone, | 504 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone, |
| 496 base::Unretained(this))); | 505 base::Unretained(this))); |
| 497 ASSERT_EQ(LastResult::kNone, this->last_result()); | 506 ASSERT_EQ(LastResult::kNone, this->last_result()); |
| 498 this->PumpLoop(); | 507 this->PumpLoop(); |
| 499 ASSERT_EQ(LastResult::kTrue, this->last_result()); | 508 ASSERT_EQ(LastResult::kTrue, this->last_result()); |
| 500 ASSERT_EQ(1ul, this->last_requests().size()); | 509 ASSERT_EQ(1ul, this->last_requests().size()); |
| 501 ASSERT_TRUE(original_request == *(this->last_requests().at(0).get())); | 510 ASSERT_TRUE(original_request == *(this->last_requests().at(0).get())); |
| 502 } | 511 } |
| 503 | 512 |
| 504 } // offline_pages | 513 } // offline_pages |
| OLD | NEW |