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

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

Issue 2356433004: [Offline pages] Extracting AddRequest method in RequestQueueStore (Closed)
Patch Set: Addressing feedback plus attempt at fixing compilation issue" Created 4 years, 3 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 18 matching lines...) Expand all
29 const ClientId kClientId("bookmark", "1234"); 29 const ClientId kClientId("bookmark", "1234");
30 const ClientId kClientId2("async", "5678"); 30 const ClientId kClientId2("async", "5678");
31 const bool kUserRequested = true; 31 const bool kUserRequested = true;
32 32
33 enum class LastResult { 33 enum class LastResult {
34 kNone, 34 kNone,
35 kFalse, 35 kFalse,
36 kTrue, 36 kTrue,
37 }; 37 };
38 38
39 bool operator==(const SavePageRequest& lhs, const SavePageRequest& rhs) {
40 return lhs.request_id() == rhs.request_id() && lhs.url() == rhs.url() &&
41 lhs.client_id() == rhs.client_id() &&
42 lhs.creation_time() == rhs.creation_time() &&
43 lhs.activation_time() == rhs.activation_time() &&
44 lhs.started_attempt_count() == rhs.started_attempt_count() &&
45 lhs.completed_attempt_count() == rhs.completed_attempt_count() &&
46 lhs.last_attempt_time() == rhs.last_attempt_time() &&
47 lhs.request_state() == rhs.request_state();
48 }
49
50 } // namespace 39 } // namespace
51 40
52 // Class that serves as a base for testing different implementations of the 41 // Class that serves as a base for testing different implementations of the
53 // |RequestQueueStore|. Specific implementations extend the templatized version 42 // |RequestQueueStore|. Specific implementations extend the templatized version
54 // of this class and provide appropriate store factory. 43 // of this class and provide appropriate store factory.
55 class RequestQueueStoreTestBase : public testing::Test { 44 class RequestQueueStoreTestBase : public testing::Test {
56 public: 45 public:
57 RequestQueueStoreTestBase(); 46 RequestQueueStoreTestBase();
58 47
59 // Test overrides. 48 // Test overrides.
60 void TearDown() override; 49 void TearDown() override;
61 50
62 void PumpLoop(); 51 void PumpLoop();
63 void ClearResults(); 52 void ClearResults();
64 53
65 // Callback used for get requests. 54 // Callback used for get requests.
66 void GetRequestsDone(bool result, 55 void GetRequestsDone(bool result,
67 std::vector<std::unique_ptr<SavePageRequest>> requests); 56 std::vector<std::unique_ptr<SavePageRequest>> requests);
68 // Callback used for add/update request. 57 // Callback used for add/update request.
69 void AddOrUpdateDone(UpdateStatus result); 58 void AddOrUpdateDone(UpdateStatus result);
59 void AddRequestDone(ItemActionStatus status);
70 void UpdateMultipleRequestsDone( 60 void UpdateMultipleRequestsDone(
71 const RequestQueue::UpdateMultipleRequestResults& results, 61 const RequestQueue::UpdateMultipleRequestResults& results,
72 std::vector<std::unique_ptr<SavePageRequest>> requests); 62 std::vector<std::unique_ptr<SavePageRequest>> requests);
73 // Callback used for remove requests. 63 // Callback used for remove requests.
74 void RemoveDone(const RequestQueue::UpdateMultipleRequestResults& results, 64 void RemoveDone(const RequestQueue::UpdateMultipleRequestResults& results,
75 std::vector<std::unique_ptr<SavePageRequest>> requests); 65 std::vector<std::unique_ptr<SavePageRequest>> requests);
76 // Callback used for reset. 66 // Callback used for reset.
77 void ResetDone(bool result); 67 void ResetDone(bool result);
78 68
79 LastResult last_result() const { return last_result_; } 69 LastResult last_result() const { return last_result_; }
80 UpdateStatus last_update_status() const { return last_update_status_; } 70 UpdateStatus last_update_status() const { return last_update_status_; }
81 const RequestQueue::UpdateMultipleRequestResults& 71 const RequestQueue::UpdateMultipleRequestResults&
82 last_multiple_update_results() const { 72 last_multiple_update_results() const {
83 return last_multiple_update_results_; 73 return last_multiple_update_results_;
84 } 74 }
85 const RequestQueue::UpdateMultipleRequestResults& last_remove_results() 75 const RequestQueue::UpdateMultipleRequestResults& last_remove_results()
86 const { 76 const {
87 return last_remove_results_; 77 return last_remove_results_;
88 } 78 }
89 const std::vector<std::unique_ptr<SavePageRequest>>& last_requests() const { 79 const std::vector<std::unique_ptr<SavePageRequest>>& last_requests() const {
90 return last_requests_; 80 return last_requests_;
91 } 81 }
82 ItemActionStatus last_add_status() const { return last_add_status_; }
92 83
93 protected: 84 protected:
94 base::ScopedTempDir temp_directory_; 85 base::ScopedTempDir temp_directory_;
95 86
96 private: 87 private:
97 LastResult last_result_; 88 LastResult last_result_;
98 UpdateStatus last_update_status_; 89 UpdateStatus last_update_status_;
90 ItemActionStatus last_add_status_;
99 RequestQueue::UpdateMultipleRequestResults last_multiple_update_results_; 91 RequestQueue::UpdateMultipleRequestResults last_multiple_update_results_;
100 RequestQueue::UpdateMultipleRequestResults last_remove_results_; 92 RequestQueue::UpdateMultipleRequestResults last_remove_results_;
101 std::vector<std::unique_ptr<SavePageRequest>> last_requests_; 93 std::vector<std::unique_ptr<SavePageRequest>> last_requests_;
102 94
103 scoped_refptr<base::TestSimpleTaskRunner> task_runner_; 95 scoped_refptr<base::TestSimpleTaskRunner> task_runner_;
104 base::ThreadTaskRunnerHandle task_runner_handle_; 96 base::ThreadTaskRunnerHandle task_runner_handle_;
105 }; 97 };
106 98
107 RequestQueueStoreTestBase::RequestQueueStoreTestBase() 99 RequestQueueStoreTestBase::RequestQueueStoreTestBase()
108 : last_result_(LastResult::kNone), 100 : last_result_(LastResult::kNone),
109 last_update_status_(UpdateStatus::FAILED), 101 last_update_status_(UpdateStatus::FAILED),
102 last_add_status_(ItemActionStatus::NOT_FOUND),
110 task_runner_(new base::TestSimpleTaskRunner), 103 task_runner_(new base::TestSimpleTaskRunner),
111 task_runner_handle_(task_runner_) { 104 task_runner_handle_(task_runner_) {
112 EXPECT_TRUE(temp_directory_.CreateUniqueTempDir()); 105 EXPECT_TRUE(temp_directory_.CreateUniqueTempDir());
113 } 106 }
114 107
115 void RequestQueueStoreTestBase::TearDown() { 108 void RequestQueueStoreTestBase::TearDown() {
116 // Wait for all the pieces of the store to delete itself properly. 109 // Wait for all the pieces of the store to delete itself properly.
117 PumpLoop(); 110 PumpLoop();
118 } 111 }
119 112
120 void RequestQueueStoreTestBase::PumpLoop() { 113 void RequestQueueStoreTestBase::PumpLoop() {
121 task_runner_->RunUntilIdle(); 114 task_runner_->RunUntilIdle();
122 } 115 }
123 116
124 void RequestQueueStoreTestBase::ClearResults() { 117 void RequestQueueStoreTestBase::ClearResults() {
125 last_result_ = LastResult::kNone; 118 last_result_ = LastResult::kNone;
126 last_update_status_ = UpdateStatus::FAILED; 119 last_update_status_ = UpdateStatus::FAILED;
120 last_add_status_ = ItemActionStatus::NOT_FOUND;
127 last_remove_results_.clear(); 121 last_remove_results_.clear();
128 last_requests_.clear(); 122 last_requests_.clear();
129 } 123 }
130 124
131 void RequestQueueStoreTestBase::GetRequestsDone( 125 void RequestQueueStoreTestBase::GetRequestsDone(
132 bool result, 126 bool result,
133 std::vector<std::unique_ptr<SavePageRequest>> requests) { 127 std::vector<std::unique_ptr<SavePageRequest>> requests) {
134 last_result_ = result ? LastResult::kTrue : LastResult::kFalse; 128 last_result_ = result ? LastResult::kTrue : LastResult::kFalse;
135 last_requests_ = std::move(requests); 129 last_requests_ = std::move(requests);
136 } 130 }
137 131
138 void RequestQueueStoreTestBase::AddOrUpdateDone(UpdateStatus status) { 132 void RequestQueueStoreTestBase::AddOrUpdateDone(UpdateStatus status) {
139 last_update_status_ = status; 133 last_update_status_ = status;
140 } 134 }
141 135
136 void RequestQueueStoreTestBase::AddRequestDone(ItemActionStatus status) {
137 last_add_status_ = status;
138 }
139
142 void RequestQueueStoreTestBase::UpdateMultipleRequestsDone( 140 void RequestQueueStoreTestBase::UpdateMultipleRequestsDone(
143 const RequestQueue::UpdateMultipleRequestResults& results, 141 const RequestQueue::UpdateMultipleRequestResults& results,
144 std::vector<std::unique_ptr<SavePageRequest>> requests) { 142 std::vector<std::unique_ptr<SavePageRequest>> requests) {
145 last_multiple_update_results_ = results; 143 last_multiple_update_results_ = results;
146 last_requests_ = std::move(requests); 144 last_requests_ = std::move(requests);
147 } 145 }
148 146
149 void RequestQueueStoreTestBase::RemoveDone( 147 void RequestQueueStoreTestBase::RemoveDone(
150 const RequestQueue::UpdateMultipleRequestResults& results, 148 const RequestQueue::UpdateMultipleRequestResults& results,
151 std::vector<std::unique_ptr<SavePageRequest>> requests) { 149 std::vector<std::unique_ptr<SavePageRequest>> requests) {
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 ASSERT_EQ(LastResult::kTrue, this->last_result()); 216 ASSERT_EQ(LastResult::kTrue, this->last_result());
219 ASSERT_TRUE(this->last_requests().empty()); 217 ASSERT_TRUE(this->last_requests().empty());
220 } 218 }
221 219
222 TYPED_TEST(RequestQueueStoreTest, AddRequest) { 220 TYPED_TEST(RequestQueueStoreTest, AddRequest) {
223 std::unique_ptr<RequestQueueStore> store(this->BuildStore()); 221 std::unique_ptr<RequestQueueStore> store(this->BuildStore());
224 base::Time creation_time = base::Time::Now(); 222 base::Time creation_time = base::Time::Now();
225 SavePageRequest request( 223 SavePageRequest request(
226 kRequestId, kUrl, kClientId, creation_time, kUserRequested); 224 kRequestId, kUrl, kClientId, creation_time, kUserRequested);
227 225
228 store->AddOrUpdateRequest( 226 store->AddRequest(request,
229 request, base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone, 227 base::Bind(&RequestQueueStoreTestBase::AddRequestDone,
230 base::Unretained(this))); 228 base::Unretained(this)));
231 ASSERT_EQ(UpdateStatus::FAILED, this->last_update_status()); 229 ASSERT_EQ(ItemActionStatus::NOT_FOUND, this->last_add_status());
232 this->PumpLoop(); 230 this->PumpLoop();
233 ASSERT_EQ(UpdateStatus::UPDATED, this->last_update_status()); 231 ASSERT_EQ(ItemActionStatus::SUCCESS, this->last_add_status());
234 232
235 // Verifying get reqeust results after a request was added. 233 // Verifying get reqeust results after a request was added.
236 this->ClearResults(); 234 this->ClearResults();
237 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone, 235 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone,
238 base::Unretained(this))); 236 base::Unretained(this)));
239 ASSERT_EQ(LastResult::kNone, this->last_result()); 237 ASSERT_EQ(LastResult::kNone, this->last_result());
240 this->PumpLoop(); 238 this->PumpLoop();
241 ASSERT_EQ(LastResult::kTrue, this->last_result()); 239 ASSERT_EQ(LastResult::kTrue, this->last_result());
242 ASSERT_EQ(1ul, this->last_requests().size()); 240 ASSERT_EQ(1ul, this->last_requests().size());
243 ASSERT_TRUE(request == *(this->last_requests()[0])); 241 ASSERT_EQ(request, *(this->last_requests()[0].get()));
242
243 // Verify it is not possible to add the same request twice.
244 this->ClearResults();
245 store->AddRequest(request,
246 base::Bind(&RequestQueueStoreTestBase::AddRequestDone,
247 base::Unretained(this)));
248 ASSERT_EQ(ItemActionStatus::NOT_FOUND, this->last_add_status());
249 this->PumpLoop();
250 ASSERT_EQ(ItemActionStatus::ALREADY_EXISTS, this->last_add_status());
251
252 // Check that there is still only one item in the store.
253 this->ClearResults();
254 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone,
255 base::Unretained(this)));
256 ASSERT_EQ(LastResult::kNone, this->last_result());
257 this->PumpLoop();
258 ASSERT_EQ(LastResult::kTrue, this->last_result());
259 ASSERT_EQ(1ul, this->last_requests().size());
244 } 260 }
245 261
246 TYPED_TEST(RequestQueueStoreTest, UpdateRequest) { 262 TYPED_TEST(RequestQueueStoreTest, UpdateRequest) {
247 std::unique_ptr<RequestQueueStore> store(this->BuildStore()); 263 std::unique_ptr<RequestQueueStore> store(this->BuildStore());
248 base::Time creation_time = base::Time::Now(); 264 base::Time creation_time = base::Time::Now();
249 SavePageRequest original_request( 265 SavePageRequest original_request(
250 kRequestId, kUrl, kClientId, creation_time, kUserRequested); 266 kRequestId, kUrl, kClientId, creation_time, kUserRequested);
251 store->AddOrUpdateRequest( 267 store->AddRequest(original_request,
252 original_request, base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone, 268 base::Bind(&RequestQueueStoreTestBase::AddRequestDone,
253 base::Unretained(this))); 269 base::Unretained(this)));
254 this->PumpLoop(); 270 this->PumpLoop();
255 this->ClearResults(); 271 this->ClearResults();
256 272
257 base::Time new_creation_time = 273 base::Time new_creation_time =
258 creation_time + base::TimeDelta::FromMinutes(1); 274 creation_time + base::TimeDelta::FromMinutes(1);
259 base::Time activation_time = creation_time + base::TimeDelta::FromHours(6); 275 base::Time activation_time = creation_time + base::TimeDelta::FromHours(6);
260 SavePageRequest updated_request(kRequestId, kUrl, kClientId, 276 SavePageRequest updated_request(kRequestId, kUrl, kClientId,
261 new_creation_time, activation_time, 277 new_creation_time, activation_time,
262 kUserRequested); 278 kUserRequested);
263 store->AddOrUpdateRequest( 279 store->AddOrUpdateRequest(
264 updated_request, base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone, 280 updated_request, base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone,
265 base::Unretained(this))); 281 base::Unretained(this)));
266 ASSERT_EQ(UpdateStatus::FAILED, this->last_update_status()); 282 ASSERT_EQ(UpdateStatus::FAILED, this->last_update_status());
267 this->PumpLoop(); 283 this->PumpLoop();
268 ASSERT_EQ(UpdateStatus::UPDATED, this->last_update_status()); 284 ASSERT_EQ(UpdateStatus::UPDATED, this->last_update_status());
269 285
270 // Verifying get reqeust results after a request was updated. 286 // Verifying get reqeust results after a request was updated.
271 this->ClearResults(); 287 this->ClearResults();
272 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone, 288 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone,
273 base::Unretained(this))); 289 base::Unretained(this)));
274 ASSERT_EQ(LastResult::kNone, this->last_result()); 290 ASSERT_EQ(LastResult::kNone, this->last_result());
275 this->PumpLoop(); 291 this->PumpLoop();
276 ASSERT_EQ(LastResult::kTrue, this->last_result()); 292 ASSERT_EQ(LastResult::kTrue, this->last_result());
277 ASSERT_EQ(1ul, this->last_requests().size()); 293 ASSERT_EQ(1ul, this->last_requests().size());
278 ASSERT_TRUE(updated_request == *(this->last_requests()[0].get())); 294 ASSERT_EQ(updated_request, *(this->last_requests()[0].get()));
279 } 295 }
280 296
281 TYPED_TEST(RequestQueueStoreTest, RemoveRequests) { 297 TYPED_TEST(RequestQueueStoreTest, RemoveRequests) {
282 std::unique_ptr<RequestQueueStore> store(this->BuildStore()); 298 std::unique_ptr<RequestQueueStore> store(this->BuildStore());
283 base::Time creation_time = base::Time::Now(); 299 base::Time creation_time = base::Time::Now();
284 SavePageRequest request1(kRequestId, kUrl, kClientId, creation_time, 300 SavePageRequest request1(kRequestId, kUrl, kClientId, creation_time,
285 kUserRequested); 301 kUserRequested);
286 store->AddOrUpdateRequest( 302 store->AddRequest(request1,
287 request1, base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone, 303 base::Bind(&RequestQueueStoreTestBase::AddRequestDone,
288 base::Unretained(this))); 304 base::Unretained(this)));
289 SavePageRequest request2(kRequestId2, kUrl2, kClientId2, creation_time, 305 SavePageRequest request2(kRequestId2, kUrl2, kClientId2, creation_time,
290 kUserRequested); 306 kUserRequested);
291 store->AddOrUpdateRequest( 307 store->AddRequest(request2,
292 request2, base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone, 308 base::Bind(&RequestQueueStoreTestBase::AddRequestDone,
293 base::Unretained(this))); 309 base::Unretained(this)));
294 this->PumpLoop(); 310 this->PumpLoop();
295 this->ClearResults(); 311 this->ClearResults();
296 312
297 std::vector<int64_t> request_ids{kRequestId, kRequestId2}; 313 std::vector<int64_t> request_ids{kRequestId, kRequestId2};
298 store->RemoveRequests(request_ids, 314 store->RemoveRequests(request_ids,
299 base::Bind(&RequestQueueStoreTestBase::RemoveDone, 315 base::Bind(&RequestQueueStoreTestBase::RemoveDone,
300 base::Unretained(this))); 316 base::Unretained(this)));
301 ASSERT_EQ(0ul, this->last_remove_results().size()); 317 ASSERT_EQ(0ul, this->last_remove_results().size());
302 this->PumpLoop(); 318 this->PumpLoop();
303 ASSERT_EQ(2ul, this->last_remove_results().size()); 319 ASSERT_EQ(2ul, this->last_remove_results().size());
(...skipping 28 matching lines...) Expand all
332 ASSERT_EQ(0UL, this->last_requests().size()); 348 ASSERT_EQ(0UL, this->last_requests().size());
333 } 349 }
334 350
335 TYPED_TEST(RequestQueueStoreTest, PauseAndResumeRequest) { 351 TYPED_TEST(RequestQueueStoreTest, PauseAndResumeRequest) {
336 std::unique_ptr<RequestQueueStore> store(this->BuildStore()); 352 std::unique_ptr<RequestQueueStore> store(this->BuildStore());
337 base::Time creation_time = base::Time::Now(); 353 base::Time creation_time = base::Time::Now();
338 354
339 // Create request and add it to the queue. 355 // Create request and add it to the queue.
340 SavePageRequest request1(kRequestId, kUrl, kClientId, creation_time, 356 SavePageRequest request1(kRequestId, kUrl, kClientId, creation_time,
341 kUserRequested); 357 kUserRequested);
342 store->AddOrUpdateRequest( 358 store->AddRequest(request1,
343 request1, base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone, 359 base::Bind(&RequestQueueStoreTestBase::AddRequestDone,
344 base::Unretained(this))); 360 base::Unretained(this)));
345 this->PumpLoop(); 361 this->PumpLoop();
346 this->ClearResults(); 362 this->ClearResults();
347 363
348 // Pause a request. 364 // Pause a request.
349 std::vector<int64_t> request_ids{kRequestId}; 365 std::vector<int64_t> request_ids{kRequestId};
350 store->ChangeRequestsState( 366 store->ChangeRequestsState(
351 request_ids, SavePageRequest::RequestState::PAUSED, 367 request_ids, SavePageRequest::RequestState::PAUSED,
352 base::Bind(&RequestQueueStoreTestBase::UpdateMultipleRequestsDone, 368 base::Bind(&RequestQueueStoreTestBase::UpdateMultipleRequestsDone,
353 base::Unretained(this))); 369 base::Unretained(this)));
354 ASSERT_EQ(LastResult::kNone, this->last_result()); 370 ASSERT_EQ(LastResult::kNone, this->last_result());
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
399 ASSERT_EQ(SavePageRequest::RequestState::AVAILABLE, 415 ASSERT_EQ(SavePageRequest::RequestState::AVAILABLE,
400 this->last_requests().at(0)->request_state()); 416 this->last_requests().at(0)->request_state());
401 this->ClearResults(); 417 this->ClearResults();
402 } 418 }
403 419
404 TYPED_TEST(RequestQueueStoreTest, ResetStore) { 420 TYPED_TEST(RequestQueueStoreTest, ResetStore) {
405 std::unique_ptr<RequestQueueStore> store(this->BuildStore()); 421 std::unique_ptr<RequestQueueStore> store(this->BuildStore());
406 base::Time creation_time = base::Time::Now(); 422 base::Time creation_time = base::Time::Now();
407 SavePageRequest original_request( 423 SavePageRequest original_request(
408 kRequestId, kUrl, kClientId, creation_time, kUserRequested); 424 kRequestId, kUrl, kClientId, creation_time, kUserRequested);
409 store->AddOrUpdateRequest( 425 store->AddRequest(original_request,
410 original_request, base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone, 426 base::Bind(&RequestQueueStoreTestBase::AddRequestDone,
411 base::Unretained(this))); 427 base::Unretained(this)));
412 this->PumpLoop(); 428 this->PumpLoop();
413 this->ClearResults(); 429 this->ClearResults();
414 430
415 store->Reset(base::Bind(&RequestQueueStoreTestBase::ResetDone, 431 store->Reset(base::Bind(&RequestQueueStoreTestBase::ResetDone,
416 base::Unretained(this))); 432 base::Unretained(this)));
417 ASSERT_EQ(LastResult::kNone, this->last_result()); 433 ASSERT_EQ(LastResult::kNone, this->last_result());
418 this->PumpLoop(); 434 this->PumpLoop();
419 ASSERT_EQ(LastResult::kTrue, this->last_result()); 435 ASSERT_EQ(LastResult::kTrue, this->last_result());
420 this->ClearResults(); 436 this->ClearResults();
421 437
422 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone, 438 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone,
423 base::Unretained(this))); 439 base::Unretained(this)));
424 this->PumpLoop(); 440 this->PumpLoop();
425 ASSERT_EQ(LastResult::kTrue, this->last_result()); 441 ASSERT_EQ(LastResult::kTrue, this->last_result());
426 ASSERT_TRUE(this->last_requests().empty()); 442 ASSERT_TRUE(this->last_requests().empty());
427 } 443 }
428 444
429 class RequestQueueStoreSQLTest 445 class RequestQueueStoreSQLTest
430 : public RequestQueueStoreTest<RequestQueueStoreSQLFactory> {}; 446 : public RequestQueueStoreTest<RequestQueueStoreSQLFactory> {};
431 447
432 // Makes sure that persistent DB is actually persisting requests across store 448 // Makes sure that persistent DB is actually persisting requests across store
433 // restarts. 449 // restarts.
434 TEST_F(RequestQueueStoreSQLTest, SaveCloseReopenRead) { 450 TEST_F(RequestQueueStoreSQLTest, SaveCloseReopenRead) {
435 std::unique_ptr<RequestQueueStore> store(BuildStore()); 451 std::unique_ptr<RequestQueueStore> store(BuildStore());
436 base::Time creation_time = base::Time::Now(); 452 base::Time creation_time = base::Time::Now();
437 SavePageRequest original_request( 453 SavePageRequest original_request(
438 kRequestId, kUrl, kClientId, creation_time, kUserRequested); 454 kRequestId, kUrl, kClientId, creation_time, kUserRequested);
439 store->AddOrUpdateRequest( 455 store->AddRequest(original_request,
440 original_request, base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone, 456 base::Bind(&RequestQueueStoreTestBase::AddRequestDone,
441 base::Unretained(this))); 457 base::Unretained(this)));
442 PumpLoop(); 458 PumpLoop();
443 ClearResults(); 459 ClearResults();
444 460
445 // Resets the store, using the same temp directory. The contents should be 461 // Resets the store, using the same temp directory. The contents should be
446 // intact. First reset is done separately to release DB lock. 462 // intact. First reset is done separately to release DB lock.
447 store.reset(); 463 store.reset();
448 store = BuildStore(); 464 store = BuildStore();
449 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone, 465 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone,
450 base::Unretained(this))); 466 base::Unretained(this)));
451 ASSERT_EQ(LastResult::kNone, this->last_result()); 467 ASSERT_EQ(LastResult::kNone, this->last_result());
452 this->PumpLoop(); 468 this->PumpLoop();
453 ASSERT_EQ(LastResult::kTrue, this->last_result()); 469 ASSERT_EQ(LastResult::kTrue, this->last_result());
454 ASSERT_EQ(1ul, this->last_requests().size()); 470 ASSERT_EQ(1ul, this->last_requests().size());
455 ASSERT_TRUE(original_request == *(this->last_requests().at(0).get())); 471 ASSERT_TRUE(original_request == *(this->last_requests().at(0).get()));
456 } 472 }
457 473
458 } // offline_pages 474 } // offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698