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

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

Issue 2410903003: [Offline pages] Adding capability to query a subset of requests based on IDs (Closed)
Patch Set: Addressing remaining feedback Created 4 years, 2 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
« no previous file with comments | « components/offline_pages/background/request_queue_store_sql.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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"
11 #include "base/files/scoped_temp_dir.h" 11 #include "base/files/scoped_temp_dir.h"
12 #include "base/test/test_simple_task_runner.h" 12 #include "base/test/test_simple_task_runner.h"
13 #include "base/threading/thread_task_runner_handle.h" 13 #include "base/threading/thread_task_runner_handle.h"
14 #include "components/offline_pages/background/request_queue.h" 14 #include "components/offline_pages/background/request_queue.h"
15 #include "components/offline_pages/background/request_queue_in_memory_store.h" 15 #include "components/offline_pages/background/request_queue_in_memory_store.h"
16 #include "components/offline_pages/background/request_queue_store_sql.h" 16 #include "components/offline_pages/background/request_queue_store_sql.h"
17 #include "components/offline_pages/background/save_page_request.h" 17 #include "components/offline_pages/background/save_page_request.h"
18 #include "testing/gtest/include/gtest/gtest.h" 18 #include "testing/gtest/include/gtest/gtest.h"
19 19
20 namespace offline_pages { 20 namespace offline_pages {
21 21
22 using UpdateStatus = RequestQueueStore::UpdateStatus; 22 using UpdateStatus = RequestQueueStore::UpdateStatus;
23 23
24 namespace { 24 namespace {
25 const int64_t kRequestId = 42; 25 const int64_t kRequestId = 42;
26 const int64_t kRequestId2 = 44; 26 const int64_t kRequestId2 = 44;
27 const int64_t kRequestId3 = 47;
27 const GURL kUrl("http://example.com"); 28 const GURL kUrl("http://example.com");
28 const GURL kUrl2("http://another-example.com"); 29 const GURL kUrl2("http://another-example.com");
29 const ClientId kClientId("bookmark", "1234"); 30 const ClientId kClientId("bookmark", "1234");
30 const ClientId kClientId2("async", "5678"); 31 const ClientId kClientId2("async", "5678");
31 const bool kUserRequested = true; 32 const bool kUserRequested = true;
32 33
33 enum class LastResult { 34 enum class LastResult {
34 kNone, 35 kNone,
35 kFalse, 36 kFalse,
36 kTrue, 37 kTrue,
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 TYPED_TEST(RequestQueueStoreTest, GetRequestsEmpty) { 192 TYPED_TEST(RequestQueueStoreTest, GetRequestsEmpty) {
192 std::unique_ptr<RequestQueueStore> store(this->BuildStore()); 193 std::unique_ptr<RequestQueueStore> store(this->BuildStore());
193 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone, 194 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone,
194 base::Unretained(this))); 195 base::Unretained(this)));
195 ASSERT_EQ(LastResult::kNone, this->last_result()); 196 ASSERT_EQ(LastResult::kNone, this->last_result());
196 this->PumpLoop(); 197 this->PumpLoop();
197 ASSERT_EQ(LastResult::kTrue, this->last_result()); 198 ASSERT_EQ(LastResult::kTrue, this->last_result());
198 ASSERT_TRUE(this->last_requests().empty()); 199 ASSERT_TRUE(this->last_requests().empty());
199 } 200 }
200 201
202 TYPED_TEST(RequestQueueStoreTest, GetRequestsByIds) {
203 std::unique_ptr<RequestQueueStore> store(this->BuildStore());
204 base::Time creation_time = base::Time::Now();
205 SavePageRequest request1(kRequestId, kUrl, kClientId, creation_time,
206 kUserRequested);
207 store->AddRequest(request1,
208 base::Bind(&RequestQueueStoreTestBase::AddRequestDone,
209 base::Unretained(this)));
210 SavePageRequest request2(kRequestId2, kUrl2, kClientId2, creation_time,
211 kUserRequested);
212 store->AddRequest(request2,
213 base::Bind(&RequestQueueStoreTestBase::AddRequestDone,
214 base::Unretained(this)));
215 this->PumpLoop();
216 this->ClearResults();
217
218 std::vector<int64_t> request_ids{kRequestId, kRequestId2};
219 store->GetRequestsByIds(
220 request_ids, base::Bind(&RequestQueueStoreTestBase::UpdateRequestDone,
221 base::Unretained(this)));
222
223 ASSERT_FALSE(this->last_update_result());
224 this->PumpLoop();
225 ASSERT_TRUE(this->last_update_result());
226 EXPECT_EQ(2UL, this->last_update_result()->item_statuses.size());
227 EXPECT_EQ(kRequestId, this->last_update_result()->item_statuses[0].first);
228 EXPECT_EQ(ItemActionStatus::SUCCESS,
229 this->last_update_result()->item_statuses[0].second);
230 EXPECT_EQ(kRequestId2, this->last_update_result()->item_statuses[1].first);
231 EXPECT_EQ(ItemActionStatus::SUCCESS,
232 this->last_update_result()->item_statuses[1].second);
233 EXPECT_EQ(2UL, this->last_update_result()->updated_items.size());
234 EXPECT_EQ(request1, this->last_update_result()->updated_items.at(0));
235 EXPECT_EQ(request2, this->last_update_result()->updated_items.at(1));
236 this->ClearResults();
237
238 request_ids.clear();
239 request_ids.push_back(kRequestId);
240 request_ids.push_back(kRequestId3);
241 request_ids.push_back(kRequestId);
242
243 store->GetRequestsByIds(
244 request_ids, base::Bind(&RequestQueueStoreTestBase::UpdateRequestDone,
245 base::Unretained(this)));
246
247 ASSERT_FALSE(this->last_update_result());
248 this->PumpLoop();
249 ASSERT_TRUE(this->last_update_result());
250 EXPECT_EQ(2UL, this->last_update_result()->item_statuses.size());
251 EXPECT_EQ(kRequestId, this->last_update_result()->item_statuses[0].first);
252 EXPECT_EQ(ItemActionStatus::SUCCESS,
253 this->last_update_result()->item_statuses[0].second);
254 EXPECT_EQ(kRequestId3, this->last_update_result()->item_statuses[1].first);
255 EXPECT_EQ(ItemActionStatus::NOT_FOUND,
256 this->last_update_result()->item_statuses[1].second);
257 EXPECT_EQ(1UL, this->last_update_result()->updated_items.size());
258 EXPECT_EQ(request1, this->last_update_result()->updated_items.at(0));
259 }
260
201 TYPED_TEST(RequestQueueStoreTest, AddRequest) { 261 TYPED_TEST(RequestQueueStoreTest, AddRequest) {
202 std::unique_ptr<RequestQueueStore> store(this->BuildStore()); 262 std::unique_ptr<RequestQueueStore> store(this->BuildStore());
203 base::Time creation_time = base::Time::Now(); 263 base::Time creation_time = base::Time::Now();
204 SavePageRequest request( 264 SavePageRequest request(
205 kRequestId, kUrl, kClientId, creation_time, kUserRequested); 265 kRequestId, kUrl, kClientId, creation_time, kUserRequested);
206 266
207 store->AddRequest(request, 267 store->AddRequest(request,
208 base::Bind(&RequestQueueStoreTestBase::AddRequestDone, 268 base::Bind(&RequestQueueStoreTestBase::AddRequestDone,
209 base::Unretained(this))); 269 base::Unretained(this)));
210 ASSERT_EQ(ItemActionStatus::NOT_FOUND, this->last_add_status()); 270 ASSERT_EQ(ItemActionStatus::NOT_FOUND, this->last_add_status());
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
403 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone, 463 store->GetRequests(base::Bind(&RequestQueueStoreTestBase::GetRequestsDone,
404 base::Unretained(this))); 464 base::Unretained(this)));
405 ASSERT_EQ(LastResult::kNone, this->last_result()); 465 ASSERT_EQ(LastResult::kNone, this->last_result());
406 this->PumpLoop(); 466 this->PumpLoop();
407 ASSERT_EQ(LastResult::kTrue, this->last_result()); 467 ASSERT_EQ(LastResult::kTrue, this->last_result());
408 ASSERT_EQ(1ul, this->last_requests().size()); 468 ASSERT_EQ(1ul, this->last_requests().size());
409 ASSERT_TRUE(original_request == *(this->last_requests().at(0).get())); 469 ASSERT_TRUE(original_request == *(this->last_requests().at(0).get()));
410 } 470 }
411 471
412 } // offline_pages 472 } // offline_pages
OLDNEW
« no previous file with comments | « components/offline_pages/background/request_queue_store_sql.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698