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

Side by Side Diff: chrome/browser/android/offline_pages/prerendering_offliner_unittest.cc

Issue 2742833004: Fix the Download Notifications for Offline Pages to indicate bytes loaded. (Closed)
Patch Set: Created 3 years, 9 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 "chrome/browser/android/offline_pages/prerendering_offliner.h" 5 #include "chrome/browser/android/offline_pages/prerendering_offliner.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 161
162 class PrerenderingOfflinerTest : public testing::Test { 162 class PrerenderingOfflinerTest : public testing::Test {
163 public: 163 public:
164 PrerenderingOfflinerTest(); 164 PrerenderingOfflinerTest();
165 ~PrerenderingOfflinerTest() override; 165 ~PrerenderingOfflinerTest() override;
166 166
167 void SetUp() override; 167 void SetUp() override;
168 168
169 Profile* profile() { return &profile_; } 169 Profile* profile() { return &profile_; }
170 PrerenderingOffliner* offliner() const { return offliner_.get(); } 170 PrerenderingOffliner* offliner() const { return offliner_.get(); }
171 Offliner::CompletionCallback const callback() { 171 Offliner::CompletionCallback const completion_callback() {
172 return base::Bind(&PrerenderingOfflinerTest::OnCompletion, 172 return base::Bind(&PrerenderingOfflinerTest::OnCompletion,
173 base::Unretained(this)); 173 base::Unretained(this));
174 } 174 }
175 Offliner::ProgressCallback const progress_callback() {
176 return base::Bind(&PrerenderingOfflinerTest::OnProgress,
177 base::Unretained(this));
178 }
175 179
176 bool SaveInProgress() const { return model_->mock_saving(); } 180 bool SaveInProgress() const { return model_->mock_saving(); }
177 MockPrerenderingLoader* loader() { return loader_; } 181 MockPrerenderingLoader* loader() { return loader_; }
178 MockOfflinePageModel* model() { return model_; } 182 MockOfflinePageModel* model() { return model_; }
179 bool completion_callback_called() { return completion_callback_called_; } 183 bool completion_callback_called() { return completion_callback_called_; }
180 Offliner::RequestStatus request_status() { return request_status_; } 184 Offliner::RequestStatus request_status() { return request_status_; }
181 OfflinerPolicy* policy() { return policy_; } 185 OfflinerPolicy* policy() { return policy_; }
182 186
183 private: 187 private:
184 void OnCompletion(const SavePageRequest& request, 188 void OnCompletion(const SavePageRequest& request,
185 Offliner::RequestStatus status); 189 Offliner::RequestStatus status);
190 void OnProgress(const SavePageRequest& request, int64_t bytes);
186 191
187 content::TestBrowserThreadBundle thread_bundle_; 192 content::TestBrowserThreadBundle thread_bundle_;
188 TestingProfile profile_; 193 TestingProfile profile_;
189 std::unique_ptr<PrerenderingOffliner> offliner_; 194 std::unique_ptr<PrerenderingOffliner> offliner_;
190 // Not owned. 195 // Not owned.
191 MockPrerenderingLoader* loader_; 196 MockPrerenderingLoader* loader_;
192 MockOfflinePageModel* model_; 197 MockOfflinePageModel* model_;
193 bool completion_callback_called_; 198 bool completion_callback_called_;
194 Offliner::RequestStatus request_status_; 199 Offliner::RequestStatus request_status_;
195 OfflinerPolicy* policy_; 200 OfflinerPolicy* policy_;
(...skipping 18 matching lines...) Expand all
214 offliner_->SetLoaderForTesting(std::move(mock_loader)); 219 offliner_->SetLoaderForTesting(std::move(mock_loader));
215 } 220 }
216 221
217 void PrerenderingOfflinerTest::OnCompletion(const SavePageRequest& request, 222 void PrerenderingOfflinerTest::OnCompletion(const SavePageRequest& request,
218 Offliner::RequestStatus status) { 223 Offliner::RequestStatus status) {
219 DCHECK(!completion_callback_called_); // Expect single callback per request. 224 DCHECK(!completion_callback_called_); // Expect single callback per request.
220 completion_callback_called_ = true; 225 completion_callback_called_ = true;
221 request_status_ = status; 226 request_status_ = status;
222 } 227 }
223 228
229 void PrerenderingOfflinerTest::OnProgress(const SavePageRequest& request,
230 int64_t bytes) {}
231
224 TEST_F(PrerenderingOfflinerTest, LoadAndSaveBadUrl) { 232 TEST_F(PrerenderingOfflinerTest, LoadAndSaveBadUrl) {
225 base::Time creation_time = base::Time::Now(); 233 base::Time creation_time = base::Time::Now();
226 SavePageRequest request( 234 SavePageRequest request(
227 kRequestId, kFileUrl, kClientId, creation_time, kUserRequested); 235 kRequestId, kFileUrl, kClientId, creation_time, kUserRequested);
228 EXPECT_FALSE(offliner()->LoadAndSave(request, callback())); 236 EXPECT_FALSE(offliner()->LoadAndSave(request, completion_callback(),
237 progress_callback()));
229 EXPECT_TRUE(loader()->IsIdle()); 238 EXPECT_TRUE(loader()->IsIdle());
230 } 239 }
231 240
232 TEST_F(PrerenderingOfflinerTest, LoadAndSavePrerenderingDisabled) { 241 TEST_F(PrerenderingOfflinerTest, LoadAndSavePrerenderingDisabled) {
233 base::Time creation_time = base::Time::Now(); 242 base::Time creation_time = base::Time::Now();
234 SavePageRequest request( 243 SavePageRequest request(
235 kRequestId, kHttpUrl, kClientId, creation_time, kUserRequested); 244 kRequestId, kHttpUrl, kClientId, creation_time, kUserRequested);
236 loader()->DisablePrerendering(); 245 loader()->DisablePrerendering();
237 EXPECT_FALSE(offliner()->LoadAndSave(request, callback())); 246 EXPECT_FALSE(offliner()->LoadAndSave(request, completion_callback(),
247 progress_callback()));
238 EXPECT_TRUE(loader()->IsIdle()); 248 EXPECT_TRUE(loader()->IsIdle());
239 } 249 }
240 250
241 TEST_F(PrerenderingOfflinerTest, 251 TEST_F(PrerenderingOfflinerTest,
242 LoadAndSaveBlockThirdPartyCookiesForCustomTabs) { 252 LoadAndSaveBlockThirdPartyCookiesForCustomTabs) {
243 base::Time creation_time = base::Time::Now(); 253 base::Time creation_time = base::Time::Now();
244 ClientId custom_tabs_client_id("custom_tabs", "88"); 254 ClientId custom_tabs_client_id("custom_tabs", "88");
245 SavePageRequest request(kRequestId, kHttpUrl, custom_tabs_client_id, 255 SavePageRequest request(kRequestId, kHttpUrl, custom_tabs_client_id,
246 creation_time, kUserRequested); 256 creation_time, kUserRequested);
247 profile()->GetPrefs()->SetBoolean(prefs::kBlockThirdPartyCookies, true); 257 profile()->GetPrefs()->SetBoolean(prefs::kBlockThirdPartyCookies, true);
248 EXPECT_FALSE(offliner()->LoadAndSave(request, callback())); 258 EXPECT_FALSE(offliner()->LoadAndSave(request, completion_callback(),
259 progress_callback()));
249 EXPECT_TRUE(loader()->IsIdle()); 260 EXPECT_TRUE(loader()->IsIdle());
250 } 261 }
251 262
252 TEST_F(PrerenderingOfflinerTest, 263 TEST_F(PrerenderingOfflinerTest,
253 LoadAndSaveBlockOnDisabledPrerendererForCustomTabs) { 264 LoadAndSaveBlockOnDisabledPrerendererForCustomTabs) {
254 base::Time creation_time = base::Time::Now(); 265 base::Time creation_time = base::Time::Now();
255 ClientId custom_tabs_client_id("custom_tabs", "88"); 266 ClientId custom_tabs_client_id("custom_tabs", "88");
256 SavePageRequest request(kRequestId, kHttpUrl, custom_tabs_client_id, 267 SavePageRequest request(kRequestId, kHttpUrl, custom_tabs_client_id,
257 creation_time, kUserRequested); 268 creation_time, kUserRequested);
258 profile()->GetPrefs()->SetInteger( 269 profile()->GetPrefs()->SetInteger(
259 prefs::kNetworkPredictionOptions, 270 prefs::kNetworkPredictionOptions,
260 chrome_browser_net::NETWORK_PREDICTION_NEVER); 271 chrome_browser_net::NETWORK_PREDICTION_NEVER);
261 EXPECT_FALSE(offliner()->LoadAndSave(request, callback())); 272 EXPECT_FALSE(offliner()->LoadAndSave(request, completion_callback(),
273 progress_callback()));
262 EXPECT_TRUE(loader()->IsIdle()); 274 EXPECT_TRUE(loader()->IsIdle());
263 } 275 }
264 276
265 TEST_F(PrerenderingOfflinerTest, LoadAndSaveLoadStartedButFails) { 277 TEST_F(PrerenderingOfflinerTest, LoadAndSaveLoadStartedButFails) {
266 base::Time creation_time = base::Time::Now(); 278 base::Time creation_time = base::Time::Now();
267 SavePageRequest request( 279 SavePageRequest request(
268 kRequestId, kHttpUrl, kClientId, creation_time, kUserRequested); 280 kRequestId, kHttpUrl, kClientId, creation_time, kUserRequested);
269 EXPECT_TRUE(offliner()->LoadAndSave(request, callback())); 281 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(),
282 progress_callback()));
270 EXPECT_FALSE(loader()->IsIdle()); 283 EXPECT_FALSE(loader()->IsIdle());
271 EXPECT_EQ(Offliner::RequestStatus::UNKNOWN, request_status()); 284 EXPECT_EQ(Offliner::RequestStatus::UNKNOWN, request_status());
272 285
273 loader()->CompleteLoadingAsFailed(); 286 loader()->CompleteLoadingAsFailed();
274 PumpLoop(); 287 PumpLoop();
275 EXPECT_TRUE(completion_callback_called()); 288 EXPECT_TRUE(completion_callback_called());
276 EXPECT_EQ(Offliner::RequestStatus::LOADING_FAILED, request_status()); 289 EXPECT_EQ(Offliner::RequestStatus::LOADING_FAILED, request_status());
277 EXPECT_TRUE(loader()->IsIdle()); 290 EXPECT_TRUE(loader()->IsIdle());
278 EXPECT_FALSE(SaveInProgress()); 291 EXPECT_FALSE(SaveInProgress());
279 } 292 }
280 293
281 TEST_F(PrerenderingOfflinerTest, CancelWhenLoading) { 294 TEST_F(PrerenderingOfflinerTest, CancelWhenLoading) {
282 base::Time creation_time = base::Time::Now(); 295 base::Time creation_time = base::Time::Now();
283 SavePageRequest request( 296 SavePageRequest request(
284 kRequestId, kHttpUrl, kClientId, creation_time, kUserRequested); 297 kRequestId, kHttpUrl, kClientId, creation_time, kUserRequested);
285 EXPECT_TRUE(offliner()->LoadAndSave(request, callback())); 298 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(),
299 progress_callback()));
286 EXPECT_FALSE(loader()->IsIdle()); 300 EXPECT_FALSE(loader()->IsIdle());
287 301
288 offliner()->Cancel(); 302 offliner()->Cancel();
289 EXPECT_TRUE(loader()->IsIdle()); 303 EXPECT_TRUE(loader()->IsIdle());
290 } 304 }
291 305
292 TEST_F(PrerenderingOfflinerTest, CancelWhenLoaded) { 306 TEST_F(PrerenderingOfflinerTest, CancelWhenLoaded) {
293 base::Time creation_time = base::Time::Now(); 307 base::Time creation_time = base::Time::Now();
294 SavePageRequest request( 308 SavePageRequest request(
295 kRequestId, kHttpUrl, kClientId, creation_time, kUserRequested); 309 kRequestId, kHttpUrl, kClientId, creation_time, kUserRequested);
296 EXPECT_TRUE(offliner()->LoadAndSave(request, callback())); 310 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(),
311 progress_callback()));
297 EXPECT_FALSE(loader()->IsIdle()); 312 EXPECT_FALSE(loader()->IsIdle());
298 EXPECT_EQ(Offliner::RequestStatus::UNKNOWN, request_status()); 313 EXPECT_EQ(Offliner::RequestStatus::UNKNOWN, request_status());
299 314
300 loader()->CompleteLoadingAsLoaded(); 315 loader()->CompleteLoadingAsLoaded();
301 PumpLoop(); 316 PumpLoop();
302 EXPECT_FALSE(completion_callback_called()); 317 EXPECT_FALSE(completion_callback_called());
303 EXPECT_TRUE(loader()->IsLoaded()); 318 EXPECT_TRUE(loader()->IsLoaded());
304 EXPECT_TRUE(SaveInProgress()); 319 EXPECT_TRUE(SaveInProgress());
305 320
306 offliner()->Cancel(); 321 offliner()->Cancel();
307 PumpLoop(); 322 PumpLoop();
308 EXPECT_FALSE(completion_callback_called()); 323 EXPECT_FALSE(completion_callback_called());
309 EXPECT_FALSE(loader()->IsLoaded()); 324 EXPECT_FALSE(loader()->IsLoaded());
310 // Note: save still in progress since it does not support canceling. 325 // Note: save still in progress since it does not support canceling.
311 EXPECT_TRUE(SaveInProgress()); 326 EXPECT_TRUE(SaveInProgress());
312 327
313 // Subsequent save callback causes no harm (no crash and no callback). 328 // Subsequent save callback causes no harm (no crash and no callback).
314 model()->CompleteSavingAsArchiveCreationFailed(); 329 model()->CompleteSavingAsArchiveCreationFailed();
315 PumpLoop(); 330 PumpLoop();
316 EXPECT_FALSE(completion_callback_called()); 331 EXPECT_FALSE(completion_callback_called());
317 EXPECT_TRUE(loader()->IsIdle()); 332 EXPECT_TRUE(loader()->IsIdle());
318 EXPECT_FALSE(SaveInProgress()); 333 EXPECT_FALSE(SaveInProgress());
319 } 334 }
320 335
321 TEST_F(PrerenderingOfflinerTest, LoadAndSaveLoadedButSaveFails) { 336 TEST_F(PrerenderingOfflinerTest, LoadAndSaveLoadedButSaveFails) {
322 base::Time creation_time = base::Time::Now(); 337 base::Time creation_time = base::Time::Now();
323 SavePageRequest request( 338 SavePageRequest request(
324 kRequestId, kHttpUrl, kClientId, creation_time, kUserRequested); 339 kRequestId, kHttpUrl, kClientId, creation_time, kUserRequested);
325 EXPECT_TRUE(offliner()->LoadAndSave(request, callback())); 340 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(),
341 progress_callback()));
326 EXPECT_FALSE(loader()->IsIdle()); 342 EXPECT_FALSE(loader()->IsIdle());
327 EXPECT_EQ(Offliner::RequestStatus::UNKNOWN, request_status()); 343 EXPECT_EQ(Offliner::RequestStatus::UNKNOWN, request_status());
328 344
329 loader()->CompleteLoadingAsLoaded(); 345 loader()->CompleteLoadingAsLoaded();
330 PumpLoop(); 346 PumpLoop();
331 EXPECT_FALSE(completion_callback_called()); 347 EXPECT_FALSE(completion_callback_called());
332 EXPECT_TRUE(loader()->IsLoaded()); 348 EXPECT_TRUE(loader()->IsLoaded());
333 EXPECT_TRUE(SaveInProgress()); 349 EXPECT_TRUE(SaveInProgress());
334 350
335 model()->CompleteSavingAsArchiveCreationFailed(); 351 model()->CompleteSavingAsArchiveCreationFailed();
336 PumpLoop(); 352 PumpLoop();
337 EXPECT_TRUE(completion_callback_called()); 353 EXPECT_TRUE(completion_callback_called());
338 EXPECT_EQ(Offliner::RequestStatus::SAVE_FAILED, request_status()); 354 EXPECT_EQ(Offliner::RequestStatus::SAVE_FAILED, request_status());
339 EXPECT_FALSE(loader()->IsLoaded()); 355 EXPECT_FALSE(loader()->IsLoaded());
340 EXPECT_FALSE(SaveInProgress()); 356 EXPECT_FALSE(SaveInProgress());
341 } 357 }
342 358
343 TEST_F(PrerenderingOfflinerTest, LoadAndSaveSuccessful) { 359 TEST_F(PrerenderingOfflinerTest, LoadAndSaveSuccessful) {
344 base::Time creation_time = base::Time::Now(); 360 base::Time creation_time = base::Time::Now();
345 SavePageRequest request( 361 SavePageRequest request(
346 kRequestId, kHttpUrl, kClientId, creation_time, kUserRequested); 362 kRequestId, kHttpUrl, kClientId, creation_time, kUserRequested);
347 EXPECT_TRUE(offliner()->LoadAndSave(request, callback())); 363 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(),
364 progress_callback()));
348 EXPECT_FALSE(loader()->IsIdle()); 365 EXPECT_FALSE(loader()->IsIdle());
349 EXPECT_EQ(Offliner::RequestStatus::UNKNOWN, request_status()); 366 EXPECT_EQ(Offliner::RequestStatus::UNKNOWN, request_status());
350 367
351 loader()->CompleteLoadingAsLoaded(); 368 loader()->CompleteLoadingAsLoaded();
352 PumpLoop(); 369 PumpLoop();
353 EXPECT_FALSE(completion_callback_called()); 370 EXPECT_FALSE(completion_callback_called());
354 EXPECT_TRUE(loader()->IsLoaded()); 371 EXPECT_TRUE(loader()->IsLoaded());
355 EXPECT_TRUE(SaveInProgress()); 372 EXPECT_TRUE(SaveInProgress());
356 373
357 model()->CompleteSavingAsSuccess(); 374 model()->CompleteSavingAsSuccess();
358 PumpLoop(); 375 PumpLoop();
359 EXPECT_TRUE(completion_callback_called()); 376 EXPECT_TRUE(completion_callback_called());
360 EXPECT_EQ(Offliner::RequestStatus::SAVED, request_status()); 377 EXPECT_EQ(Offliner::RequestStatus::SAVED, request_status());
361 EXPECT_FALSE(loader()->IsLoaded()); 378 EXPECT_FALSE(loader()->IsLoaded());
362 EXPECT_FALSE(SaveInProgress()); 379 EXPECT_FALSE(SaveInProgress());
363 } 380 }
364 381
365 TEST_F(PrerenderingOfflinerTest, LoadAndSaveLoadedButThenCanceledFromLoader) { 382 TEST_F(PrerenderingOfflinerTest, LoadAndSaveLoadedButThenCanceledFromLoader) {
366 base::Time creation_time = base::Time::Now(); 383 base::Time creation_time = base::Time::Now();
367 SavePageRequest request( 384 SavePageRequest request(
368 kRequestId, kHttpUrl, kClientId, creation_time, kUserRequested); 385 kRequestId, kHttpUrl, kClientId, creation_time, kUserRequested);
369 EXPECT_TRUE(offliner()->LoadAndSave(request, callback())); 386 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(),
387 progress_callback()));
370 EXPECT_FALSE(loader()->IsIdle()); 388 EXPECT_FALSE(loader()->IsIdle());
371 EXPECT_EQ(Offliner::RequestStatus::UNKNOWN, request_status()); 389 EXPECT_EQ(Offliner::RequestStatus::UNKNOWN, request_status());
372 390
373 loader()->CompleteLoadingAsLoaded(); 391 loader()->CompleteLoadingAsLoaded();
374 PumpLoop(); 392 PumpLoop();
375 EXPECT_FALSE(completion_callback_called()); 393 EXPECT_FALSE(completion_callback_called());
376 EXPECT_TRUE(loader()->IsLoaded()); 394 EXPECT_TRUE(loader()->IsLoaded());
377 EXPECT_TRUE(SaveInProgress()); 395 EXPECT_TRUE(SaveInProgress());
378 396
379 loader()->CompleteLoadingAsCanceled(); 397 loader()->CompleteLoadingAsCanceled();
380 PumpLoop(); 398 PumpLoop();
381 EXPECT_TRUE(completion_callback_called()); 399 EXPECT_TRUE(completion_callback_called());
382 EXPECT_EQ(Offliner::RequestStatus::LOADING_CANCELED, request_status()); 400 EXPECT_EQ(Offliner::RequestStatus::LOADING_CANCELED, request_status());
383 EXPECT_FALSE(loader()->IsLoaded()); 401 EXPECT_FALSE(loader()->IsLoaded());
384 // Note: save still in progress since it does not support canceling. 402 // Note: save still in progress since it does not support canceling.
385 EXPECT_TRUE(SaveInProgress()); 403 EXPECT_TRUE(SaveInProgress());
386 } 404 }
387 405
388 TEST_F(PrerenderingOfflinerTest, ForegroundTransitionCancelsOnLowEndDevice) { 406 TEST_F(PrerenderingOfflinerTest, ForegroundTransitionCancelsOnLowEndDevice) {
389 offliner()->SetLowEndDeviceForTesting(true); 407 offliner()->SetLowEndDeviceForTesting(true);
390 408
391 base::Time creation_time = base::Time::Now(); 409 base::Time creation_time = base::Time::Now();
392 SavePageRequest request( 410 SavePageRequest request(
393 kRequestId, kHttpUrl, kClientId, creation_time, kUserRequested); 411 kRequestId, kHttpUrl, kClientId, creation_time, kUserRequested);
394 EXPECT_TRUE(offliner()->LoadAndSave(request, callback())); 412 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(),
413 progress_callback()));
395 EXPECT_FALSE(loader()->IsIdle()); 414 EXPECT_FALSE(loader()->IsIdle());
396 415
397 offliner()->SetApplicationStateForTesting( 416 offliner()->SetApplicationStateForTesting(
398 base::android::APPLICATION_STATE_HAS_RUNNING_ACTIVITIES); 417 base::android::APPLICATION_STATE_HAS_RUNNING_ACTIVITIES);
399 418
400 // Loading canceled on low-end device. 419 // Loading canceled on low-end device.
401 EXPECT_TRUE(loader()->IsIdle()); 420 EXPECT_TRUE(loader()->IsIdle());
402 EXPECT_EQ(Offliner::RequestStatus::FOREGROUND_CANCELED, request_status()); 421 EXPECT_EQ(Offliner::RequestStatus::FOREGROUND_CANCELED, request_status());
403 } 422 }
404 423
405 TEST_F(PrerenderingOfflinerTest, ForegroundTransitionIgnoredOnHighEndDevice) { 424 TEST_F(PrerenderingOfflinerTest, ForegroundTransitionIgnoredOnHighEndDevice) {
406 offliner()->SetLowEndDeviceForTesting(false); 425 offliner()->SetLowEndDeviceForTesting(false);
407 426
408 base::Time creation_time = base::Time::Now(); 427 base::Time creation_time = base::Time::Now();
409 SavePageRequest request( 428 SavePageRequest request(
410 kRequestId, kHttpUrl, kClientId, creation_time, kUserRequested); 429 kRequestId, kHttpUrl, kClientId, creation_time, kUserRequested);
411 EXPECT_TRUE(offliner()->LoadAndSave(request, callback())); 430 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(),
431 progress_callback()));
412 EXPECT_FALSE(loader()->IsIdle()); 432 EXPECT_FALSE(loader()->IsIdle());
413 433
414 offliner()->SetApplicationStateForTesting( 434 offliner()->SetApplicationStateForTesting(
415 base::android::APPLICATION_STATE_HAS_RUNNING_ACTIVITIES); 435 base::android::APPLICATION_STATE_HAS_RUNNING_ACTIVITIES);
416 436
417 // Loader still loading since not low-end device. 437 // Loader still loading since not low-end device.
418 EXPECT_FALSE(loader()->IsIdle()); 438 EXPECT_FALSE(loader()->IsIdle());
419 } 439 }
420 440
421 TEST_F(PrerenderingOfflinerTest, HandleTimeoutWithLowbarAndCompletedTriesMet) { 441 TEST_F(PrerenderingOfflinerTest, HandleTimeoutWithLowbarAndCompletedTriesMet) {
422 offliner()->SetLowEndDeviceForTesting(false); 442 offliner()->SetLowEndDeviceForTesting(false);
423 443
424 base::Time creation_time = base::Time::Now(); 444 base::Time creation_time = base::Time::Now();
425 SavePageRequest request(kRequestId, kHttpUrl, kClientId, creation_time, 445 SavePageRequest request(kRequestId, kHttpUrl, kClientId, creation_time,
426 kUserRequested); 446 kUserRequested);
427 request.set_completed_attempt_count(policy()->GetMaxCompletedTries() - 1); 447 request.set_completed_attempt_count(policy()->GetMaxCompletedTries() - 1);
428 EXPECT_TRUE(offliner()->LoadAndSave(request, callback())); 448 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(),
449 progress_callback()));
429 loader()->set_is_lowbar_met(true); 450 loader()->set_is_lowbar_met(true);
430 EXPECT_TRUE(offliner()->HandleTimeout(request)); 451 EXPECT_TRUE(offliner()->HandleTimeout(request));
431 EXPECT_TRUE(loader()->start_snapshot_called()); 452 EXPECT_TRUE(loader()->start_snapshot_called());
432 } 453 }
433 454
434 TEST_F(PrerenderingOfflinerTest, 455 TEST_F(PrerenderingOfflinerTest,
435 HandleTimeoutWithLowbarAndCompletedTriesMetLowEndDevice) { 456 HandleTimeoutWithLowbarAndCompletedTriesMetLowEndDevice) {
436 offliner()->SetLowEndDeviceForTesting(true); 457 offliner()->SetLowEndDeviceForTesting(true);
437 458
438 base::Time creation_time = base::Time::Now(); 459 base::Time creation_time = base::Time::Now();
439 SavePageRequest request(kRequestId, kHttpUrl, kClientId, creation_time, 460 SavePageRequest request(kRequestId, kHttpUrl, kClientId, creation_time,
440 kUserRequested); 461 kUserRequested);
441 request.set_completed_attempt_count(policy()->GetMaxCompletedTries() - 1); 462 request.set_completed_attempt_count(policy()->GetMaxCompletedTries() - 1);
442 EXPECT_TRUE(offliner()->LoadAndSave(request, callback())); 463 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(),
464 progress_callback()));
443 loader()->set_is_lowbar_met(true); 465 loader()->set_is_lowbar_met(true);
444 EXPECT_TRUE(offliner()->HandleTimeout(request)); 466 EXPECT_TRUE(offliner()->HandleTimeout(request));
445 EXPECT_TRUE(loader()->start_snapshot_called()); 467 EXPECT_TRUE(loader()->start_snapshot_called());
446 } 468 }
447 469
448 TEST_F(PrerenderingOfflinerTest, 470 TEST_F(PrerenderingOfflinerTest,
449 HandleTimeoutCompletedTriesMetWithoutLowbarMet) { 471 HandleTimeoutCompletedTriesMetWithoutLowbarMet) {
450 offliner()->SetLowEndDeviceForTesting(false); 472 offliner()->SetLowEndDeviceForTesting(false);
451 473
452 base::Time creation_time = base::Time::Now(); 474 base::Time creation_time = base::Time::Now();
453 SavePageRequest request(kRequestId, kHttpUrl, kClientId, creation_time, 475 SavePageRequest request(kRequestId, kHttpUrl, kClientId, creation_time,
454 kUserRequested); 476 kUserRequested);
455 request.set_completed_attempt_count(policy()->GetMaxCompletedTries() - 1); 477 request.set_completed_attempt_count(policy()->GetMaxCompletedTries() - 1);
456 EXPECT_TRUE(offliner()->LoadAndSave(request, callback())); 478 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(),
479 progress_callback()));
457 loader()->set_is_lowbar_met(false); 480 loader()->set_is_lowbar_met(false);
458 EXPECT_FALSE(offliner()->HandleTimeout(request)); 481 EXPECT_FALSE(offliner()->HandleTimeout(request));
459 EXPECT_FALSE(loader()->start_snapshot_called()); 482 EXPECT_FALSE(loader()->start_snapshot_called());
460 } 483 }
461 484
462 TEST_F(PrerenderingOfflinerTest, HandleTimeoutWithLowbarAndStartedTriesMet) { 485 TEST_F(PrerenderingOfflinerTest, HandleTimeoutWithLowbarAndStartedTriesMet) {
463 offliner()->SetLowEndDeviceForTesting(false); 486 offliner()->SetLowEndDeviceForTesting(false);
464 487
465 base::Time creation_time = base::Time::Now(); 488 base::Time creation_time = base::Time::Now();
466 SavePageRequest request(kRequestId, kHttpUrl, kClientId, creation_time, 489 SavePageRequest request(kRequestId, kHttpUrl, kClientId, creation_time,
467 kUserRequested); 490 kUserRequested);
468 request.set_started_attempt_count(policy()->GetMaxStartedTries() - 1); 491 request.set_started_attempt_count(policy()->GetMaxStartedTries() - 1);
469 EXPECT_TRUE(offliner()->LoadAndSave(request, callback())); 492 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(),
493 progress_callback()));
470 loader()->set_is_lowbar_met(true); 494 loader()->set_is_lowbar_met(true);
471 EXPECT_TRUE(offliner()->HandleTimeout(request)); 495 EXPECT_TRUE(offliner()->HandleTimeout(request));
472 EXPECT_TRUE(loader()->start_snapshot_called()); 496 EXPECT_TRUE(loader()->start_snapshot_called());
473 } 497 }
474 498
475 TEST_F(PrerenderingOfflinerTest, HandleTimeoutWithOnlyLowbarMet) { 499 TEST_F(PrerenderingOfflinerTest, HandleTimeoutWithOnlyLowbarMet) {
476 offliner()->SetLowEndDeviceForTesting(false); 500 offliner()->SetLowEndDeviceForTesting(false);
477 501
478 base::Time creation_time = base::Time::Now(); 502 base::Time creation_time = base::Time::Now();
479 SavePageRequest request(kRequestId, kHttpUrl, kClientId, creation_time, 503 SavePageRequest request(kRequestId, kHttpUrl, kClientId, creation_time,
480 kUserRequested); 504 kUserRequested);
481 EXPECT_TRUE(offliner()->LoadAndSave(request, callback())); 505 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(),
506 progress_callback()));
482 loader()->set_is_lowbar_met(true); 507 loader()->set_is_lowbar_met(true);
483 EXPECT_FALSE(offliner()->HandleTimeout(request)); 508 EXPECT_FALSE(offliner()->HandleTimeout(request));
484 EXPECT_FALSE(loader()->start_snapshot_called()); 509 EXPECT_FALSE(loader()->start_snapshot_called());
485 } 510 }
486 511
487 } // namespace offline_pages 512 } // namespace offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698