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

Unified Diff: components/offline_pages/offline_page_model_unittest.cc

Issue 1843893002: Support resaving offline page right after it is being deleted (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address feedback Created 4 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 side-by-side diff with in-line comments
Download patch
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..f794a176529534efc906a7ba894ccaa8e375a5ab 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, SavePageAfterMarkingPageForDeletion) {
+ 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();
« no previous file with comments | « components/offline_pages/offline_page_model.cc ('k') | components/offline_pages/offline_page_test_archiver.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698