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

Side by Side Diff: components/offline_pages/background/request_queue_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: 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.h" 5 #include "components/offline_pages/background/request_queue.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/test/test_simple_task_runner.h" 10 #include "base/test/test_simple_task_runner.h"
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 155
156 TEST_F(RequestQueueTest, RemoveRequest) { 156 TEST_F(RequestQueueTest, RemoveRequest) {
157 base::Time creation_time = base::Time::Now(); 157 base::Time creation_time = base::Time::Now();
158 SavePageRequest request( 158 SavePageRequest request(
159 kRequestId, kUrl, kClientId, creation_time, kUserRequested); 159 kRequestId, kUrl, kClientId, creation_time, kUserRequested);
160 queue()->AddRequest(request, base::Bind(&RequestQueueTest::AddRequestDone, 160 queue()->AddRequest(request, base::Bind(&RequestQueueTest::AddRequestDone,
161 base::Unretained(this))); 161 base::Unretained(this)));
162 PumpLoop(); 162 PumpLoop();
163 ASSERT_EQ(kRequestId, last_added_request()->request_id()); 163 ASSERT_EQ(kRequestId, last_added_request()->request_id());
164 164
165 queue()->RemoveRequest( 165 std::vector<int64_t> remove_requests;
166 kRequestId, 166 remove_requests.push_back(kRequestId);
167 queue()->RemoveRequests(
168 remove_requests,
167 base::Bind(&RequestQueueTest::RemoveRequestDone, base::Unretained(this))); 169 base::Bind(&RequestQueueTest::RemoveRequestDone, base::Unretained(this)));
168 PumpLoop(); 170 PumpLoop();
169 ASSERT_EQ(UpdateRequestResult::SUCCESS, last_remove_result()); 171 ASSERT_EQ(UpdateRequestResult::SUCCESS, last_remove_result());
170 172
171 queue()->GetRequests( 173 queue()->GetRequests(
172 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this))); 174 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this)));
173 PumpLoop(); 175 PumpLoop();
174 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result()); 176 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result());
175 ASSERT_EQ(0ul, last_requests().size()); 177 ASSERT_EQ(0ul, last_requests().size());
176 } 178 }
177 179
178 TEST_F(RequestQueueTest, RemoveRequestByClientId) {
179 base::Time creation_time = base::Time::Now();
180 // Put two requests on the queue with different client IDs.
181 SavePageRequest request(kRequestId, kUrl, kClientId, creation_time,
182 kUserRequested);
183 queue()->AddRequest(request, base::Bind(&RequestQueueTest::AddRequestDone,
184 base::Unretained(this)));
185 SavePageRequest request2(kRequestId2, kUrl2, kClientId2, creation_time,
186 kUserRequested);
187 queue()->AddRequest(request2, base::Bind(&RequestQueueTest::AddRequestDone,
188 base::Unretained(this)));
189 PumpLoop();
190
191 queue()->GetRequests(
192 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this)));
193 PumpLoop();
194 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result());
195 ASSERT_EQ(2ul, last_requests().size());
196
197 std::vector<ClientId> client_ids;
198 client_ids.push_back(kClientId);
199
200 // Removing the first client ID should leave only the second on the queue.
201 queue()->RemoveRequestsByClientId(
202 client_ids,
203 base::Bind(&RequestQueueTest::RemoveRequestDone, base::Unretained(this)));
204 PumpLoop();
205 ASSERT_EQ(UpdateRequestResult::SUCCESS, last_remove_result());
206
207 queue()->GetRequests(
208 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this)));
209 PumpLoop();
210 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result());
211 ASSERT_EQ(1ul, last_requests().size());
212 ASSERT_EQ(kClientId2, last_requests().front().client_id());
213 }
214
215 // A longer test populating the request queue with more than one item, properly 180 // A longer test populating the request queue with more than one item, properly
216 // listing multiple items and removing the right item. 181 // listing multiple items and removing the right item.
217 TEST_F(RequestQueueTest, MultipleRequestsAddGetRemove) { 182 TEST_F(RequestQueueTest, MultipleRequestsAddGetRemove) {
218 base::Time creation_time = base::Time::Now(); 183 base::Time creation_time = base::Time::Now();
219 SavePageRequest request1( 184 SavePageRequest request1(
220 kRequestId, kUrl, kClientId, creation_time, kUserRequested); 185 kRequestId, kUrl, kClientId, creation_time, kUserRequested);
221 queue()->AddRequest(request1, base::Bind(&RequestQueueTest::AddRequestDone, 186 queue()->AddRequest(request1, base::Bind(&RequestQueueTest::AddRequestDone,
222 base::Unretained(this))); 187 base::Unretained(this)));
223 PumpLoop(); 188 PumpLoop();
224 ASSERT_EQ(request1.request_id(), last_added_request()->request_id()); 189 ASSERT_EQ(request1.request_id(), last_added_request()->request_id());
225 SavePageRequest request2( 190 SavePageRequest request2(
226 kRequestId2, kUrl2, kClientId2, creation_time, kUserRequested); 191 kRequestId2, kUrl2, kClientId2, creation_time, kUserRequested);
227 queue()->AddRequest(request2, base::Bind(&RequestQueueTest::AddRequestDone, 192 queue()->AddRequest(request2, base::Bind(&RequestQueueTest::AddRequestDone,
228 base::Unretained(this))); 193 base::Unretained(this)));
229 PumpLoop(); 194 PumpLoop();
230 ASSERT_EQ(request2.request_id(), last_added_request()->request_id()); 195 ASSERT_EQ(request2.request_id(), last_added_request()->request_id());
231 196
232 queue()->GetRequests( 197 queue()->GetRequests(
233 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this))); 198 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this)));
234 PumpLoop(); 199 PumpLoop();
235 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result()); 200 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result());
236 ASSERT_EQ(2ul, last_requests().size()); 201 ASSERT_EQ(2ul, last_requests().size());
237 202
238 queue()->RemoveRequest( 203 std::vector<int64_t> remove_requests;
239 request1.request_id(), 204 remove_requests.push_back(request1.request_id());
205 queue()->RemoveRequests(
206 remove_requests,
240 base::Bind(&RequestQueueTest::RemoveRequestDone, base::Unretained(this))); 207 base::Bind(&RequestQueueTest::RemoveRequestDone, base::Unretained(this)));
241 PumpLoop(); 208 PumpLoop();
242 ASSERT_EQ(UpdateRequestResult::SUCCESS, last_remove_result()); 209 ASSERT_EQ(UpdateRequestResult::SUCCESS, last_remove_result());
243 210
244 queue()->GetRequests( 211 queue()->GetRequests(
245 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this))); 212 base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this)));
246 PumpLoop(); 213 PumpLoop();
247 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result()); 214 ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result());
248 ASSERT_EQ(1ul, last_requests().size()); 215 ASSERT_EQ(1ul, last_requests().size());
249 ASSERT_EQ(request2.request_id(), last_requests()[0].request_id()); 216 ASSERT_EQ(request2.request_id(), last_requests()[0].request_id());
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 255
289 // Try to update request1 when only request2 is in the queue. 256 // Try to update request1 when only request2 is in the queue.
290 queue()->UpdateRequest( 257 queue()->UpdateRequest(
291 request1, 258 request1,
292 base::Bind(&RequestQueueTest::UpdateRequestDone, base::Unretained(this))); 259 base::Bind(&RequestQueueTest::UpdateRequestDone, base::Unretained(this)));
293 PumpLoop(); 260 PumpLoop();
294 ASSERT_EQ(UpdateRequestResult::REQUEST_DOES_NOT_EXIST, last_update_result()); 261 ASSERT_EQ(UpdateRequestResult::REQUEST_DOES_NOT_EXIST, last_update_result());
295 } 262 }
296 263
297 } // namespace offline_pages 264 } // namespace offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698