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

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 fixes per FGorski 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 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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698