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

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

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

Powered by Google App Engine
This is Rietveld 408576698