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

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: Fix unit test break introduced by merge 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 294 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 ASSERT_EQ(2ul, this->last_remove_results().size()); 305 ASSERT_EQ(2ul, this->last_remove_results().size());
306 // Since the SQL statement returns true on a delete of an item that isn't 306 // Since the SQL statement returns true on a delete of an item that isn't
307 // present, SQL is returning SUCCESS, but the memory is returning 307 // present, SQL is returning SUCCESS, but the memory is returning
308 // REQUEST_DOES_NOT_EXIST, so we just check that the result is not failure. 308 // REQUEST_DOES_NOT_EXIST, so we just check that the result is not failure.
309 ASSERT_NE(RequestQueue::UpdateRequestResult::STORE_FAILURE, 309 ASSERT_NE(RequestQueue::UpdateRequestResult::STORE_FAILURE,
310 this->last_remove_results().at(0).second); 310 this->last_remove_results().at(0).second);
311 ASSERT_NE(RequestQueue::UpdateRequestResult::STORE_FAILURE, 311 ASSERT_NE(RequestQueue::UpdateRequestResult::STORE_FAILURE,
312 this->last_remove_results().at(1).second); 312 this->last_remove_results().at(1).second);
313 } 313 }
314 314
315 TYPED_TEST(RequestQueueStoreTest, PauseAndResumeRequest) {
316 std::unique_ptr<RequestQueueStore> store(this->BuildStore());
317 base::Time creation_time = base::Time::Now();
318
319 // Create request and add it to the queue.
320 SavePageRequest request1(kRequestId, kUrl, kClientId, creation_time,
321 kUserRequested);
322 store->AddOrUpdateRequest(
323 request1, base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone,
324 base::Unretained(this)));
325 this->PumpLoop();
326 this->ClearResults();
327
328 // Pause a request.
329 std::vector<int64_t> request_ids{kRequestId};
330 store->ChangeRequestsState(
331 request_ids, SavePageRequest::RequestState::PAUSED,
332 base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone,
333 base::Unretained(this)));
334 ASSERT_EQ(LastResult::kNone, this->last_result());
335 this->PumpLoop();
336
337 // Verify pause succeeded
338 ASSERT_EQ(UpdateStatus::UPDATED, this->last_update_status());
339 this->ClearResults();
340
341 // Get the request from the queue to check it out
342 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone,
343 base::Unretained(this)));
344 this->PumpLoop();
345 ASSERT_EQ(LastResult::kTrue, this->last_result());
346 // The request should still be in the queue.
347 ASSERT_EQ(1UL, this->last_requests().size());
348 // Request 1 should be paused.
349 ASSERT_EQ(SavePageRequest::RequestState::PAUSED,
350 this->last_requests().at(0).request_state());
351 this->ClearResults();
352
353 // Now resume the same request we paused.
354 store->ChangeRequestsState(
355 request_ids, SavePageRequest::RequestState::AVAILABLE,
356 base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone,
357 base::Unretained(this)));
358 ASSERT_EQ(LastResult::kNone, this->last_result());
359 this->PumpLoop();
360
361 // Verify resume succeeded.
362 ASSERT_EQ(UpdateStatus::UPDATED, this->last_update_status());
363 this->ClearResults();
364
365 // Get the request from the queue to check it out
366 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone,
367 base::Unretained(this)));
368 this->PumpLoop();
369 ASSERT_EQ(LastResult::kTrue, this->last_result());
370 // The request should still be in the queue.
371 ASSERT_EQ(1UL, this->last_requests().size());
372 // Request 1 should be paused.
373 ASSERT_EQ(SavePageRequest::RequestState::AVAILABLE,
374 this->last_requests().at(0).request_state());
375 this->ClearResults();
376 }
377
315 TYPED_TEST(RequestQueueStoreTest, ResetStore) { 378 TYPED_TEST(RequestQueueStoreTest, ResetStore) {
316 std::unique_ptr<RequestQueueStore> store(this->BuildStore()); 379 std::unique_ptr<RequestQueueStore> store(this->BuildStore());
317 base::Time creation_time = base::Time::Now(); 380 base::Time creation_time = base::Time::Now();
318 SavePageRequest original_request( 381 SavePageRequest original_request(
319 kRequestId, kUrl, kClientId, creation_time, kUserRequested); 382 kRequestId, kUrl, kClientId, creation_time, kUserRequested);
320 store->AddOrUpdateRequest( 383 store->AddOrUpdateRequest(
321 original_request, base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone, 384 original_request, base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone,
322 base::Unretained(this))); 385 base::Unretained(this)));
323 this->PumpLoop(); 386 this->PumpLoop();
324 this->ClearResults(); 387 this->ClearResults();
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
360 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone, 423 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone,
361 base::Unretained(this))); 424 base::Unretained(this)));
362 ASSERT_EQ(LastResult::kNone, this->last_result()); 425 ASSERT_EQ(LastResult::kNone, this->last_result());
363 this->PumpLoop(); 426 this->PumpLoop();
364 ASSERT_EQ(LastResult::kTrue, this->last_result()); 427 ASSERT_EQ(LastResult::kTrue, this->last_result());
365 ASSERT_EQ(1ul, this->last_requests().size()); 428 ASSERT_EQ(1ul, this->last_requests().size());
366 ASSERT_TRUE(original_request == this->last_requests()[0]); 429 ASSERT_TRUE(original_request == this->last_requests()[0]);
367 } 430 }
368 431
369 } // offline_pages 432 } // offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698