| 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 371 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 382 // Check to see what remains in the queue. Removed request should be gone. | 382 // Check to see what remains in the queue. Removed request should be gone. |
| 383 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone, | 383 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone, |
| 384 base::Unretained(this))); | 384 base::Unretained(this))); |
| 385 this->PumpLoop(); | 385 this->PumpLoop(); |
| 386 ASSERT_EQ(LastResult::kTrue, this->last_result()); | 386 ASSERT_EQ(LastResult::kTrue, this->last_result()); |
| 387 // The other request should still be in the queue. | 387 // The other request should still be in the queue. |
| 388 ASSERT_TRUE(this->last_requests().empty()); | 388 ASSERT_TRUE(this->last_requests().empty()); |
| 389 this->ClearResults(); | 389 this->ClearResults(); |
| 390 } | 390 } |
| 391 | 391 |
| 392 |
| 393 TYPED_TEST(RequestQueueStoreTest, PauseAndResumeRequest) { |
| 394 std::unique_ptr<RequestQueueStore> store(this->BuildStore()); |
| 395 base::Time creation_time = base::Time::Now(); |
| 396 |
| 397 // Create requests and add them to the queue. |
| 398 SavePageRequest request1(kRequestId, kUrl, kClientId, creation_time, |
| 399 kUserRequested); |
| 400 SavePageRequest request2(kRequestId2, kUrl2, kClientId2, creation_time, |
| 401 kUserRequested); |
| 402 store->AddOrUpdateRequest( |
| 403 request1, base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone, |
| 404 base::Unretained(this))); |
| 405 this->PumpLoop(); |
| 406 this->ClearResults(); |
| 407 |
| 408 // Pause a request. |
| 409 std::vector<int64_t> request_ids{kRequestId}; |
| 410 store->PauseRequests( |
| 411 request_ids, |
| 412 base::Bind( |
| 413 &RequestQueueStoreTestBase::AddOrUpdateDone, base::Unretained(this))); |
| 414 ASSERT_EQ(LastResult::kNone, this->last_result()); |
| 415 this->PumpLoop(); |
| 416 |
| 417 // Verify pause succeeded |
| 418 ASSERT_EQ(UpdateStatus::UPDATED, this->last_update_status()); |
| 419 this->ClearResults(); |
| 420 |
| 421 // Get the request from the queue to check it out |
| 422 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone, |
| 423 base::Unretained(this))); |
| 424 this->PumpLoop(); |
| 425 ASSERT_EQ(LastResult::kTrue, this->last_result()); |
| 426 // The request should still be in the queue. |
| 427 ASSERT_EQ(1UL, this->last_requests().size()); |
| 428 // Request 1 should be paused. |
| 429 ASSERT_EQ(SavePageRequest::RequestState::PAUSED, |
| 430 this->last_requests().at(0).request_state()); |
| 431 this->ClearResults(); |
| 432 |
| 433 // Now resume the same request we paused. |
| 434 store->ResumeRequests( |
| 435 request_ids, |
| 436 base::Bind( |
| 437 &RequestQueueStoreTestBase::AddOrUpdateDone, base::Unretained(this))); |
| 438 ASSERT_EQ(LastResult::kNone, this->last_result()); |
| 439 this->PumpLoop(); |
| 440 |
| 441 // Verify resume succeeded. |
| 442 ASSERT_EQ(UpdateStatus::UPDATED, this->last_update_status()); |
| 443 this->ClearResults(); |
| 444 |
| 445 // Get the request from the queue to check it out |
| 446 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone, |
| 447 base::Unretained(this))); |
| 448 this->PumpLoop(); |
| 449 ASSERT_EQ(LastResult::kTrue, this->last_result()); |
| 450 // The request should still be in the queue. |
| 451 ASSERT_EQ(1UL, this->last_requests().size()); |
| 452 // Request 1 should be paused. |
| 453 ASSERT_EQ(SavePageRequest::RequestState::AVAILABLE, |
| 454 this->last_requests().at(0).request_state()); |
| 455 this->ClearResults(); |
| 456 } |
| 457 |
| 392 TYPED_TEST(RequestQueueStoreTest, ResetStore) { | 458 TYPED_TEST(RequestQueueStoreTest, ResetStore) { |
| 393 std::unique_ptr<RequestQueueStore> store(this->BuildStore()); | 459 std::unique_ptr<RequestQueueStore> store(this->BuildStore()); |
| 394 base::Time creation_time = base::Time::Now(); | 460 base::Time creation_time = base::Time::Now(); |
| 395 SavePageRequest original_request( | 461 SavePageRequest original_request( |
| 396 kRequestId, kUrl, kClientId, creation_time, kUserRequested); | 462 kRequestId, kUrl, kClientId, creation_time, kUserRequested); |
| 397 store->AddOrUpdateRequest( | 463 store->AddOrUpdateRequest( |
| 398 original_request, base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone, | 464 original_request, base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone, |
| 399 base::Unretained(this))); | 465 base::Unretained(this))); |
| 400 this->PumpLoop(); | 466 this->PumpLoop(); |
| 401 this->ClearResults(); | 467 this->ClearResults(); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 437 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone, | 503 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone, |
| 438 base::Unretained(this))); | 504 base::Unretained(this))); |
| 439 ASSERT_EQ(LastResult::kNone, this->last_result()); | 505 ASSERT_EQ(LastResult::kNone, this->last_result()); |
| 440 this->PumpLoop(); | 506 this->PumpLoop(); |
| 441 ASSERT_EQ(LastResult::kTrue, this->last_result()); | 507 ASSERT_EQ(LastResult::kTrue, this->last_result()); |
| 442 ASSERT_EQ(1ul, this->last_requests().size()); | 508 ASSERT_EQ(1ul, this->last_requests().size()); |
| 443 ASSERT_TRUE(original_request == this->last_requests()[0]); | 509 ASSERT_TRUE(original_request == this->last_requests()[0]); |
| 444 } | 510 } |
| 445 | 511 |
| 446 } // offline_pages | 512 } // offline_pages |
| OLD | NEW |