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

Unified Diff: components/offline_pages/background/request_queue_store_unittest.cc

Issue 2228813003: Changes to fit better with the needs of the download manager. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Use typedef to hide an ugly type. 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 side-by-side diff with in-line comments
Download patch
Index: components/offline_pages/background/request_queue_store_unittest.cc
diff --git a/components/offline_pages/background/request_queue_store_unittest.cc b/components/offline_pages/background/request_queue_store_unittest.cc
index 691a52a2b59ef40d4e7a283036d8b191d0f5122a..3413dfb583f8ca70b8640e423126df6af62e07d8 100644
--- a/components/offline_pages/background/request_queue_store_unittest.cc
+++ b/components/offline_pages/background/request_queue_store_unittest.cc
@@ -11,6 +11,7 @@
#include "base/files/scoped_temp_dir.h"
#include "base/test/test_simple_task_runner.h"
#include "base/threading/thread_task_runner_handle.h"
+#include "components/offline_pages/background/request_queue.h"
#include "components/offline_pages/background/request_queue_in_memory_store.h"
#include "components/offline_pages/background/request_queue_store_sql.h"
#include "components/offline_pages/background/save_page_request.h"
@@ -67,13 +68,16 @@ class RequestQueueStoreTestBase : public testing::Test {
// Callback used for add/update request.
void AddOrUpdateDone(UpdateStatus result);
// Callback used for remove requests.
- void RemoveDone(bool result, int count);
+ void RemoveDone(const RequestQueue::UpdateMultipleRequestResults& results);
// Callback used for reset.
void ResetDone(bool result);
LastResult last_result() const { return last_result_; }
UpdateStatus last_update_status() const { return last_update_status_; }
- int last_remove_count() const { return last_remove_count_; }
+ const RequestQueue::UpdateMultipleRequestResults& last_remove_results()
+ const {
+ return last_remove_results_;
+ }
const std::vector<SavePageRequest>& last_requests() const {
return last_requests_;
}
@@ -84,7 +88,7 @@ class RequestQueueStoreTestBase : public testing::Test {
private:
LastResult last_result_;
UpdateStatus last_update_status_;
- int last_remove_count_;
+ RequestQueue::UpdateMultipleRequestResults last_remove_results_;
std::vector<SavePageRequest> last_requests_;
scoped_refptr<base::TestSimpleTaskRunner> task_runner_;
@@ -94,7 +98,6 @@ class RequestQueueStoreTestBase : public testing::Test {
RequestQueueStoreTestBase::RequestQueueStoreTestBase()
: last_result_(LastResult::kNone),
last_update_status_(UpdateStatus::FAILED),
- last_remove_count_(0),
task_runner_(new base::TestSimpleTaskRunner),
task_runner_handle_(task_runner_) {
EXPECT_TRUE(temp_directory_.CreateUniqueTempDir());
@@ -112,7 +115,7 @@ void RequestQueueStoreTestBase::PumpLoop() {
void RequestQueueStoreTestBase::ClearResults() {
last_result_ = LastResult::kNone;
last_update_status_ = UpdateStatus::FAILED;
- last_remove_count_ = 0;
+ last_remove_results_.clear();
last_requests_.clear();
}
@@ -127,9 +130,9 @@ void RequestQueueStoreTestBase::AddOrUpdateDone(UpdateStatus status) {
last_update_status_ = status;
}
-void RequestQueueStoreTestBase::RemoveDone(bool result, int count) {
- last_result_ = result ? LastResult::kTrue : LastResult::kFalse;
- last_remove_count_ = count;
+void RequestQueueStoreTestBase::RemoveDone(
+ const RequestQueue::UpdateMultipleRequestResults& results) {
+ last_remove_results_ = results;
}
void RequestQueueStoreTestBase::ResetDone(bool result) {
@@ -257,26 +260,33 @@ TYPED_TEST(RequestQueueStoreTest, UpdateRequest) {
ASSERT_TRUE(updated_request == this->last_requests()[0]);
}
-TYPED_TEST(RequestQueueStoreTest, RemoveRequest) {
+TYPED_TEST(RequestQueueStoreTest, RemoveRequests) {
std::unique_ptr<RequestQueueStore> store(this->BuildStore());
base::Time creation_time = base::Time::Now();
- SavePageRequest original_request(
- kRequestId, kUrl, kClientId, creation_time, kUserRequested);
+ SavePageRequest request1(kRequestId, kUrl, kClientId, creation_time,
+ kUserRequested);
store->AddOrUpdateRequest(
- original_request, base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone,
- base::Unretained(this)));
+ request1, base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone,
+ base::Unretained(this)));
+ SavePageRequest request2(kRequestId2, kUrl2, kClientId2, creation_time,
+ kUserRequested);
+ store->AddOrUpdateRequest(
+ request2, base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone,
+ base::Unretained(this)));
this->PumpLoop();
this->ClearResults();
- std::vector<int64_t> request_ids{kRequestId};
+ std::vector<int64_t> request_ids{kRequestId, kRequestId2};
store->RemoveRequests(request_ids,
base::Bind(&RequestQueueStoreTestBase::RemoveDone,
base::Unretained(this)));
- ASSERT_EQ(LastResult::kNone, this->last_result());
- ASSERT_EQ(0, this->last_remove_count());
+ ASSERT_EQ(0ul, this->last_remove_results().size());
this->PumpLoop();
- ASSERT_EQ(LastResult::kTrue, this->last_result());
- ASSERT_EQ(1, this->last_remove_count());
+ ASSERT_EQ(2ul, this->last_remove_results().size());
+ ASSERT_EQ(RequestQueue::UpdateRequestResult::SUCCESS,
+ this->last_remove_results().at(0).second);
+ ASSERT_EQ(RequestQueue::UpdateRequestResult::SUCCESS,
+ this->last_remove_results().at(1).second);
this->ClearResults();
store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone,
@@ -291,102 +301,15 @@ TYPED_TEST(RequestQueueStoreTest, RemoveRequest) {
base::Bind(&RequestQueueStoreTestBase::RemoveDone,
base::Unretained(this)));
ASSERT_EQ(LastResult::kNone, this->last_result());
- ASSERT_EQ(0, this->last_remove_count());
- this->PumpLoop();
- ASSERT_EQ(LastResult::kTrue, this->last_result());
- ASSERT_EQ(0, this->last_remove_count());
-}
-
-TYPED_TEST(RequestQueueStoreTest, RemoveRequestByClientId) {
- std::unique_ptr<RequestQueueStore> store(this->BuildStore());
- base::Time creation_time = base::Time::Now();
-
- // Create requests and add them to the queue.
- SavePageRequest request1(kRequestId, kUrl, kClientId, creation_time,
- kUserRequested);
- SavePageRequest request2(kRequestId2, kUrl2, kClientId2, creation_time,
- kUserRequested);
- store->AddOrUpdateRequest(
- request1, base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone,
- base::Unretained(this)));
- store->AddOrUpdateRequest(
- request2, base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone,
- base::Unretained(this)));
- this->PumpLoop();
- this->ClearResults();
-
- // Remove a request.
- std::vector<ClientId> client_ids_to_delete{kClientId};
- store->RemoveRequestsByClientId(
- client_ids_to_delete,
- base::Bind(
- &RequestQueueStoreTestBase::RemoveDone, base::Unretained(this)));
- ASSERT_EQ(LastResult::kNone, this->last_result());
- ASSERT_EQ(0, this->last_remove_count());
- this->PumpLoop();
- ASSERT_EQ(LastResult::kTrue, this->last_result());
- ASSERT_EQ(1, this->last_remove_count());
- this->ClearResults();
-
- // Check to see what remains in the queue. Removed request should be gone.
- store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone,
- base::Unretained(this)));
- this->PumpLoop();
- ASSERT_EQ(LastResult::kTrue, this->last_result());
- // The other request should still be in the queue.
- ASSERT_EQ(1UL, this->last_requests().size());
- ASSERT_EQ(kClientId2, this->last_requests().at(0).client_id());
- this->ClearResults();
-
- // Try to remove a request that is not in the queue.
- store->RemoveRequestsByClientId(
- client_ids_to_delete,
- base::Bind(
- &RequestQueueStoreTestBase::RemoveDone, base::Unretained(this)));
- this->PumpLoop();
- ASSERT_EQ(LastResult::kTrue, this->last_result());
- ASSERT_EQ(0, this->last_remove_count());
-}
-
-TYPED_TEST(RequestQueueStoreTest, RemoveRequestWithSameClientId) {
- std::unique_ptr<RequestQueueStore> store(this->BuildStore());
- base::Time creation_time = base::Time::Now();
-
- // Create requests and add them to the queue.
- SavePageRequest request1(kRequestId, kUrl, kClientId, creation_time,
- kUserRequested);
- SavePageRequest request2(kRequestId2, kUrl2, kClientId, creation_time,
- kUserRequested);
- store->AddOrUpdateRequest(
- request1, base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone,
- base::Unretained(this)));
- store->AddOrUpdateRequest(
- request2, base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone,
- base::Unretained(this)));
- this->PumpLoop();
- this->ClearResults();
-
- // Remove a request.
- std::vector<ClientId> client_ids_to_delete{kClientId};
- store->RemoveRequestsByClientId(
- client_ids_to_delete,
- base::Bind(
- &RequestQueueStoreTestBase::RemoveDone, base::Unretained(this)));
- ASSERT_EQ(LastResult::kNone, this->last_result());
- ASSERT_EQ(0, this->last_remove_count());
this->PumpLoop();
- ASSERT_EQ(LastResult::kTrue, this->last_result());
- ASSERT_EQ(2, this->last_remove_count());
- this->ClearResults();
-
- // Check to see what remains in the queue. Removed request should be gone.
- store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone,
- base::Unretained(this)));
- this->PumpLoop();
- ASSERT_EQ(LastResult::kTrue, this->last_result());
- // The other request should still be in the queue.
- ASSERT_TRUE(this->last_requests().empty());
- this->ClearResults();
+ ASSERT_EQ(2ul, this->last_remove_results().size());
+ // Since the SQL statement returns true on a delete of an item that isn't
+ // present, SQL is returning SUCCESS, but the memory is returning
+ // REQUEST_DOES_NOT_EXIST, so we just check that the result is not failure.
+ ASSERT_NE(RequestQueue::UpdateRequestResult::STORE_FAILURE,
+ this->last_remove_results().at(0).second);
+ ASSERT_NE(RequestQueue::UpdateRequestResult::STORE_FAILURE,
+ this->last_remove_results().at(1).second);
}
TYPED_TEST(RequestQueueStoreTest, ResetStore) {

Powered by Google App Engine
This is Rietveld 408576698