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

Side by Side Diff: components/offline_pages/background/request_queue_store_unittest.cc

Issue 2221323003: Add an API to Pause and Resume background offlining requests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: CR feedback per Dimich Created 4 years, 4 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 unified diff | Download patch
OLDNEW
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
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 16:00:09 I don't think request 2 is added. Fix the comment
Pete Williamson 2016/08/10 21:38:01 Done.
397 SavePageRequest request1(kRequestId, kUrl, kClientId, creation_time,
398 kUserRequested);
399 SavePageRequest request2(kRequestId2, kUrl2, kClientId2, creation_time,
400 kUserRequested);
401 store->AddOrUpdateRequest(
402 request1, base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone,
403 base::Unretained(this)));
404 this->PumpLoop();
405 this->ClearResults();
406
407 // Pause a request.
408 std::vector<int64_t> request_ids{kRequestId};
409 store->ChangeRequestsState(
410 request_ids, SavePageRequest::RequestState::PAUSED,
411 base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone,
412 base::Unretained(this)));
413 ASSERT_EQ(LastResult::kNone, this->last_result());
414 this->PumpLoop();
415
416 // Verify pause succeeded
417 ASSERT_EQ(UpdateStatus::UPDATED, this->last_update_status());
418 this->ClearResults();
419
420 // Get the request from the queue to check it out
421 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone,
422 base::Unretained(this)));
423 this->PumpLoop();
424 ASSERT_EQ(LastResult::kTrue, this->last_result());
425 // The request should still be in the queue.
426 ASSERT_EQ(1UL, this->last_requests().size());
427 // Request 1 should be paused.
428 ASSERT_EQ(SavePageRequest::RequestState::PAUSED,
429 this->last_requests().at(0).request_state());
430 this->ClearResults();
431
432 // Now resume the same request we paused.
433 store->ChangeRequestsState(
434 request_ids, SavePageRequest::RequestState::AVAILABLE,
435 base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone,
436 base::Unretained(this)));
437 ASSERT_EQ(LastResult::kNone, this->last_result());
438 this->PumpLoop();
439
440 // Verify resume succeeded.
441 ASSERT_EQ(UpdateStatus::UPDATED, this->last_update_status());
442 this->ClearResults();
443
444 // Get the request from the queue to check it out
445 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone,
446 base::Unretained(this)));
447 this->PumpLoop();
448 ASSERT_EQ(LastResult::kTrue, this->last_result());
449 // The request should still be in the queue.
450 ASSERT_EQ(1UL, this->last_requests().size());
451 // Request 1 should be paused.
452 ASSERT_EQ(SavePageRequest::RequestState::AVAILABLE,
453 this->last_requests().at(0).request_state());
454 this->ClearResults();
455 }
456
392 TYPED_TEST(RequestQueueStoreTest, ResetStore) { 457 TYPED_TEST(RequestQueueStoreTest, ResetStore) {
393 std::unique_ptr<RequestQueueStore> store(this->BuildStore()); 458 std::unique_ptr<RequestQueueStore> store(this->BuildStore());
394 base::Time creation_time = base::Time::Now(); 459 base::Time creation_time = base::Time::Now();
395 SavePageRequest original_request( 460 SavePageRequest original_request(
396 kRequestId, kUrl, kClientId, creation_time, kUserRequested); 461 kRequestId, kUrl, kClientId, creation_time, kUserRequested);
397 store->AddOrUpdateRequest( 462 store->AddOrUpdateRequest(
398 original_request, base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone, 463 original_request, base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone,
399 base::Unretained(this))); 464 base::Unretained(this)));
400 this->PumpLoop(); 465 this->PumpLoop();
401 this->ClearResults(); 466 this->ClearResults();
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone, 502 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone,
438 base::Unretained(this))); 503 base::Unretained(this)));
439 ASSERT_EQ(LastResult::kNone, this->last_result()); 504 ASSERT_EQ(LastResult::kNone, this->last_result());
440 this->PumpLoop(); 505 this->PumpLoop();
441 ASSERT_EQ(LastResult::kTrue, this->last_result()); 506 ASSERT_EQ(LastResult::kTrue, this->last_result());
442 ASSERT_EQ(1ul, this->last_requests().size()); 507 ASSERT_EQ(1ul, this->last_requests().size());
443 ASSERT_TRUE(original_request == this->last_requests()[0]); 508 ASSERT_TRUE(original_request == this->last_requests()[0]);
444 } 509 }
445 510
446 } // offline_pages 511 } // offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698