Chromium Code Reviews| Index: components/offline_pages/offline_page_model_unittest.cc |
| diff --git a/components/offline_pages/offline_page_model_unittest.cc b/components/offline_pages/offline_page_model_unittest.cc |
| index 5c9e934c0e0886a528cf9729773aea53c6ec939c..aec0d77924962edca29309004fd22b887f6c22ae 100644 |
| --- a/components/offline_pages/offline_page_model_unittest.cc |
| +++ b/components/offline_pages/offline_page_model_unittest.cc |
| @@ -488,6 +488,41 @@ TEST_F(OfflinePageModelTest, FinalizePageDeletion) { |
| EXPECT_EQ(0UL, GetStore()->GetAllPages().size()); |
| } |
| +TEST_F(OfflinePageModelTest, ResavePageAfterMarkingPageForDeletion) { |
|
fgorski
2016/03/30 01:43:30
SavePageAfter...
jianli
2016/03/31 21:02:42
Done.
|
| + scoped_ptr<OfflinePageTestArchiver> archiver(BuildArchiver( |
| + kTestUrl, OfflinePageArchiver::ArchiverResult::SUCCESSFULLY_CREATED)); |
| + model()->SavePage( |
| + kTestUrl, kTestPageBookmarkId1, std::move(archiver), |
| + base::Bind(&OfflinePageModelTest::OnSavePageDone, AsWeakPtr())); |
| + PumpLoop(); |
| + |
| + // Mark the page for deletion. |
| + model()->MarkPageForDeletion( |
| + last_save_offline_id(), |
| + base::Bind(&OfflinePageModelTest::OnDeletePageDone, AsWeakPtr())); |
| + PumpLoop(); |
| + |
| + EXPECT_EQ(1UL, GetStore()->GetAllPages().size()); |
| + |
| + // Re-save the same page. |
| + scoped_ptr<OfflinePageTestArchiver> archiver2(BuildArchiver( |
| + kTestUrl, OfflinePageArchiver::ArchiverResult::SUCCESSFULLY_CREATED)); |
| + model()->SavePage( |
| + kTestUrl, kTestPageBookmarkId1, std::move(archiver2), |
| + base::Bind(&OfflinePageModelTest::OnSavePageDone, AsWeakPtr())); |
| + |
| + // Fast forward to trigger the page cleanup. |
| + FastForwardBy(OfflinePageModel::GetFinalDeletionDelayForTesting()); |
| + |
| + // The re-saved page should still exist. |
| + const std::vector<OfflinePageItem>& offline_pages = model()->GetAllPages(); |
| + ASSERT_EQ(1UL, offline_pages.size()); |
| + EXPECT_EQ(kTestUrl, offline_pages[0].url); |
| + EXPECT_EQ(kTestPageBookmarkId1, offline_pages[0].client_id); |
| + EXPECT_EQ(kTestFileSize, offline_pages[0].file_size); |
| + EXPECT_EQ(0, offline_pages[0].access_count); |
| +} |
| + |
| TEST_F(OfflinePageModelTest, GetAllPagesStoreEmpty) { |
| const std::vector<OfflinePageItem>& offline_pages = model()->GetAllPages(); |