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

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: Switch to request ID as key 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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698