Chromium Code Reviews| 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 TYPED_TEST(RequestQueueStoreTest, PauseAndResumeRequest) { | |
| 393 std::unique_ptr<RequestQueueStore> store(this->BuildStore()); | |
| 394 base::Time creation_time = base::Time::Now(); | |
| 395 | |
| 396 // Create requests and add them to the queue. | |
|
fgorski
2016/08/10 21:49:16
Drop the "s", just "request" it's cleaner.
Pete Williamson
2016/08/10 23:34:41
Done.
| |
| 397 SavePageRequest request1(kRequestId, kUrl, kClientId, creation_time, | |
| 398 kUserRequested); | |
| 399 store->AddOrUpdateRequest( | |
| 400 request1, base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone, | |
| 401 base::Unretained(this))); | |
| 402 this->PumpLoop(); | |
| 403 this->ClearResults(); | |
| 404 | |
| 405 // Pause a request. | |
| 406 std::vector<int64_t> request_ids{kRequestId}; | |
| 407 store->ChangeRequestsState( | |
| 408 request_ids, SavePageRequest::RequestState::PAUSED, | |
| 409 base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone, | |
| 410 base::Unretained(this))); | |
| 411 ASSERT_EQ(LastResult::kNone, this->last_result()); | |
| 412 this->PumpLoop(); | |
| 413 | |
| 414 // Verify pause succeeded | |
| 415 ASSERT_EQ(UpdateStatus::UPDATED, this->last_update_status()); | |
| 416 this->ClearResults(); | |
| 417 | |
| 418 // Get the request from the queue to check it out | |
| 419 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone, | |
| 420 base::Unretained(this))); | |
| 421 this->PumpLoop(); | |
| 422 ASSERT_EQ(LastResult::kTrue, this->last_result()); | |
| 423 // The request should still be in the queue. | |
| 424 ASSERT_EQ(1UL, this->last_requests().size()); | |
| 425 // Request 1 should be paused. | |
| 426 ASSERT_EQ(SavePageRequest::RequestState::PAUSED, | |
| 427 this->last_requests().at(0).request_state()); | |
| 428 this->ClearResults(); | |
| 429 | |
| 430 // Now resume the same request we paused. | |
| 431 store->ChangeRequestsState( | |
| 432 request_ids, SavePageRequest::RequestState::AVAILABLE, | |
| 433 base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone, | |
| 434 base::Unretained(this))); | |
| 435 ASSERT_EQ(LastResult::kNone, this->last_result()); | |
| 436 this->PumpLoop(); | |
| 437 | |
| 438 // Verify resume succeeded. | |
| 439 ASSERT_EQ(UpdateStatus::UPDATED, this->last_update_status()); | |
| 440 this->ClearResults(); | |
| 441 | |
| 442 // Get the request from the queue to check it out | |
| 443 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone, | |
| 444 base::Unretained(this))); | |
| 445 this->PumpLoop(); | |
| 446 ASSERT_EQ(LastResult::kTrue, this->last_result()); | |
| 447 // The request should still be in the queue. | |
| 448 ASSERT_EQ(1UL, this->last_requests().size()); | |
| 449 // Request 1 should be paused. | |
| 450 ASSERT_EQ(SavePageRequest::RequestState::AVAILABLE, | |
| 451 this->last_requests().at(0).request_state()); | |
| 452 this->ClearResults(); | |
| 453 } | |
| 454 | |
| 392 TYPED_TEST(RequestQueueStoreTest, ResetStore) { | 455 TYPED_TEST(RequestQueueStoreTest, ResetStore) { |
| 393 std::unique_ptr<RequestQueueStore> store(this->BuildStore()); | 456 std::unique_ptr<RequestQueueStore> store(this->BuildStore()); |
| 394 base::Time creation_time = base::Time::Now(); | 457 base::Time creation_time = base::Time::Now(); |
| 395 SavePageRequest original_request( | 458 SavePageRequest original_request( |
| 396 kRequestId, kUrl, kClientId, creation_time, kUserRequested); | 459 kRequestId, kUrl, kClientId, creation_time, kUserRequested); |
| 397 store->AddOrUpdateRequest( | 460 store->AddOrUpdateRequest( |
| 398 original_request, base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone, | 461 original_request, base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone, |
| 399 base::Unretained(this))); | 462 base::Unretained(this))); |
| 400 this->PumpLoop(); | 463 this->PumpLoop(); |
| 401 this->ClearResults(); | 464 this->ClearResults(); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 437 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone, | 500 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone, |
| 438 base::Unretained(this))); | 501 base::Unretained(this))); |
| 439 ASSERT_EQ(LastResult::kNone, this->last_result()); | 502 ASSERT_EQ(LastResult::kNone, this->last_result()); |
| 440 this->PumpLoop(); | 503 this->PumpLoop(); |
| 441 ASSERT_EQ(LastResult::kTrue, this->last_result()); | 504 ASSERT_EQ(LastResult::kTrue, this->last_result()); |
| 442 ASSERT_EQ(1ul, this->last_requests().size()); | 505 ASSERT_EQ(1ul, this->last_requests().size()); |
| 443 ASSERT_TRUE(original_request == this->last_requests()[0]); | 506 ASSERT_TRUE(original_request == this->last_requests()[0]); |
| 444 } | 507 } |
| 445 | 508 |
| 446 } // offline_pages | 509 } // offline_pages |
| OLD | NEW |