| OLD | NEW |
| 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 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 152 } | 152 } |
| 153 | 153 |
| 154 void CompleteSavingAsSuccess() { | 154 void CompleteSavingAsSuccess() { |
| 155 DCHECK(mock_saving_); | 155 DCHECK(mock_saving_); |
| 156 mock_saving_ = false; | 156 mock_saving_ = false; |
| 157 base::ThreadTaskRunnerHandle::Get()->PostTask( | 157 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 158 FROM_HERE, | 158 FROM_HERE, |
| 159 base::Bind(save_page_callback_, SavePageResult::SUCCESS, 123456)); | 159 base::Bind(save_page_callback_, SavePageResult::SUCCESS, 123456)); |
| 160 } | 160 } |
| 161 | 161 |
| 162 void CompleteSavingAsAlreadyExists() { |
| 163 DCHECK(mock_saving_); |
| 164 mock_saving_ = false; |
| 165 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 166 FROM_HERE, base::Bind(save_page_callback_, |
| 167 SavePageResult::ALREADY_EXISTS, 123456)); |
| 168 } |
| 169 |
| 162 bool mock_saving() const { return mock_saving_; } | 170 bool mock_saving() const { return mock_saving_; } |
| 163 | 171 |
| 164 private: | 172 private: |
| 165 bool mock_saving_; | 173 bool mock_saving_; |
| 166 SavePageCallback save_page_callback_; | 174 SavePageCallback save_page_callback_; |
| 167 | 175 |
| 168 DISALLOW_COPY_AND_ASSIGN(MockOfflinePageModel); | 176 DISALLOW_COPY_AND_ASSIGN(MockOfflinePageModel); |
| 169 }; | 177 }; |
| 170 | 178 |
| 171 void PumpLoop() { | 179 void PumpLoop() { |
| (...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 403 EXPECT_TRUE(SaveInProgress()); | 411 EXPECT_TRUE(SaveInProgress()); |
| 404 | 412 |
| 405 model()->CompleteSavingAsSuccess(); | 413 model()->CompleteSavingAsSuccess(); |
| 406 PumpLoop(); | 414 PumpLoop(); |
| 407 EXPECT_TRUE(completion_callback_called()); | 415 EXPECT_TRUE(completion_callback_called()); |
| 408 EXPECT_EQ(Offliner::RequestStatus::SAVED, request_status()); | 416 EXPECT_EQ(Offliner::RequestStatus::SAVED, request_status()); |
| 409 EXPECT_FALSE(loader()->IsLoaded()); | 417 EXPECT_FALSE(loader()->IsLoaded()); |
| 410 EXPECT_FALSE(SaveInProgress()); | 418 EXPECT_FALSE(SaveInProgress()); |
| 411 } | 419 } |
| 412 | 420 |
| 421 TEST_F(PrerenderingOfflinerTest, LoadAndSavePageAlreadyExists) { |
| 422 base::Time creation_time = base::Time::Now(); |
| 423 SavePageRequest request(kRequestId, kHttpUrl, kClientId, creation_time, |
| 424 kUserRequested); |
| 425 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(), |
| 426 progress_callback())); |
| 427 EXPECT_FALSE(loader()->IsIdle()); |
| 428 EXPECT_EQ(Offliner::RequestStatus::UNKNOWN, request_status()); |
| 429 |
| 430 loader()->CompleteLoadingAsLoaded(); |
| 431 PumpLoop(); |
| 432 EXPECT_FALSE(completion_callback_called()); |
| 433 EXPECT_TRUE(loader()->IsLoaded()); |
| 434 EXPECT_TRUE(SaveInProgress()); |
| 435 |
| 436 model()->CompleteSavingAsAlreadyExists(); |
| 437 PumpLoop(); |
| 438 EXPECT_TRUE(completion_callback_called()); |
| 439 EXPECT_EQ(Offliner::RequestStatus::SAVED, request_status()); |
| 440 EXPECT_FALSE(loader()->IsLoaded()); |
| 441 EXPECT_FALSE(SaveInProgress()); |
| 442 } |
| 443 |
| 413 TEST_F(PrerenderingOfflinerTest, LoadAndSaveLoadedButThenCanceledFromLoader) { | 444 TEST_F(PrerenderingOfflinerTest, LoadAndSaveLoadedButThenCanceledFromLoader) { |
| 414 base::Time creation_time = base::Time::Now(); | 445 base::Time creation_time = base::Time::Now(); |
| 415 SavePageRequest request( | 446 SavePageRequest request( |
| 416 kRequestId, kHttpUrl, kClientId, creation_time, kUserRequested); | 447 kRequestId, kHttpUrl, kClientId, creation_time, kUserRequested); |
| 417 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(), | 448 EXPECT_TRUE(offliner()->LoadAndSave(request, completion_callback(), |
| 418 progress_callback())); | 449 progress_callback())); |
| 419 EXPECT_FALSE(loader()->IsIdle()); | 450 EXPECT_FALSE(loader()->IsIdle()); |
| 420 EXPECT_EQ(Offliner::RequestStatus::UNKNOWN, request_status()); | 451 EXPECT_EQ(Offliner::RequestStatus::UNKNOWN, request_status()); |
| 421 | 452 |
| 422 loader()->CompleteLoadingAsLoaded(); | 453 loader()->CompleteLoadingAsLoaded(); |
| (...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 617 PumpLoop(); | 648 PumpLoop(); |
| 618 EXPECT_EQ(Offliner::RequestStatus::SAVED, request_status()); | 649 EXPECT_EQ(Offliner::RequestStatus::SAVED, request_status()); |
| 619 | 650 |
| 620 // One extra part should be added if the flag is on. | 651 // One extra part should be added if the flag is on. |
| 621 content::MHTMLExtraParts* extra_parts = | 652 content::MHTMLExtraParts* extra_parts = |
| 622 content::MHTMLExtraParts::FromWebContents(loader()->web_contents()); | 653 content::MHTMLExtraParts::FromWebContents(loader()->web_contents()); |
| 623 EXPECT_EQ(extra_parts->size(), 1); | 654 EXPECT_EQ(extra_parts->size(), 1); |
| 624 } | 655 } |
| 625 | 656 |
| 626 } // namespace offline_pages | 657 } // namespace offline_pages |
| OLD | NEW |