Index: components/offline_pages/offline_page_model_impl_unittest.cc |
diff --git a/components/offline_pages/offline_page_model_impl_unittest.cc b/components/offline_pages/offline_page_model_impl_unittest.cc |
index a65ef23c02b87be71f0671690ce94afce05ba0b3..fa00760796b4d4733d7342277fc070b43a1b0021 100644 |
--- a/components/offline_pages/offline_page_model_impl_unittest.cc |
+++ b/components/offline_pages/offline_page_model_impl_unittest.cc |
@@ -119,6 +119,9 @@ class OfflinePageModelImplTest |
OfflinePageTestStore* GetStore(); |
MultipleOfflinePageItemResult GetAllPages(); |
+ MultipleOfflinePageItemResult GetPagesByClientIds( |
+ const std::vector<ClientId>& client_ids); |
+ void DeletePagesByClientIds(const std::vector<ClientId>& client_ids); |
// Returns the offline ID of the saved page. |
std::pair<SavePageResult, int64_t> SavePage(const GURL& url, |
@@ -330,6 +333,25 @@ MultipleOfflinePageItemResult OfflinePageModelImplTest::GetAllPages() { |
return result; |
} |
+MultipleOfflinePageItemResult OfflinePageModelImplTest::GetPagesByClientIds( |
+ const std::vector<ClientId>& client_ids) { |
+ MultipleOfflinePageItemResult result; |
+ model()->GetPagesByClientIds( |
+ client_ids, |
+ base::Bind(&OfflinePageModelImplTest::OnGetMultipleOfflinePageItemsResult, |
+ AsWeakPtr(), base::Unretained(&result))); |
+ PumpLoop(); |
+ return result; |
+} |
+ |
+void OfflinePageModelImplTest::DeletePagesByClientIds( |
+ const std::vector<ClientId>& client_ids) { |
+ model()->DeletePagesByClientIds( |
+ client_ids, |
+ base::Bind(&OfflinePageModelImplTest::OnDeletePageDone, AsWeakPtr())); |
+ PumpLoop(); |
+} |
+ |
CheckPagesExistOfflineResult OfflinePageModelImplTest::CheckPagesExistOffline( |
std::set<GURL> pages) { |
model()->CheckPagesExistOffline( |
@@ -1036,27 +1058,6 @@ TEST_F(OfflinePageModelImplTest, DownloadMetrics) { |
"OfflinePages.DownloadDeletedPageDuplicateCount", 2, 1); |
} |
-TEST_F(OfflinePageModelImplTest, GetBestPage) { |
- // We will save 3 pages - two for the same URL, and one for a different URL. |
- // Correct behavior will pick the most recently saved page for the correct |
- // URL. |
- std::pair<SavePageResult, int64_t> saved_pages[3]; |
- saved_pages[0] = SavePage(kTestUrl, kTestClientId1); |
- saved_pages[1] = SavePage(kTestUrl, kTestClientId1); |
- saved_pages[2] = SavePage(kTestUrl2, kTestClientId2); |
- |
- for (const auto& save_result : saved_pages) { |
- ASSERT_EQ(OfflinePageModel::SavePageResult::SUCCESS, |
- std::get<0>(save_result)); |
- } |
- |
- const OfflinePageItem* offline_page = |
- model()->MaybeGetBestPageForOnlineURL(kTestUrl); |
- ASSERT_TRUE(nullptr != offline_page); |
- |
- EXPECT_EQ(std::get<1>(saved_pages[1]), offline_page->offline_id); |
-} |
- |
TEST_F(OfflinePageModelImplTest, ExpirePages) { |
// We will save 3 pages and then expire 2 of them. |
std::pair<SavePageResult, int64_t> saved_pages[3]; |
@@ -1095,6 +1096,60 @@ TEST_F(OfflinePageModelImplTest, ExpirePages) { |
EXPECT_TRUE(last_expire_page_result()); |
} |
+TEST_F(OfflinePageModelImplTest, GetPagesByClientIds) { |
+ // We will save 3 pages. One will be expired. |
+ std::pair<SavePageResult, int64_t> saved_pages[3]; |
+ saved_pages[0] = SavePage(kTestUrl, kTestClientId1); |
+ saved_pages[1] = SavePage(kTestUrl2, kTestClientId2); |
+ saved_pages[2] = SavePage(kTestUrl3, kTestClientId3); |
+ |
+ for (const auto& save_result : saved_pages) { |
+ ASSERT_EQ(OfflinePageModel::SavePageResult::SUCCESS, |
+ std::get<0>(save_result)); |
+ } |
+ |
+ std::vector<int64_t> pages_to_expire = {std::get<1>(saved_pages[0])}; |
+ // Pages are marked as expired if they have an expiration_time set. |
+ base::Time expiration_time = |
+ base::Time::Now() + base::TimeDelta::FromMinutes(5); |
+ model()->ExpirePages( |
+ pages_to_expire, expiration_time, |
+ base::Bind(&OfflinePageModelImplTest::OnPagesExpired, AsWeakPtr())); |
+ PumpLoop(); |
+ |
+ std::vector<ClientId> client_ids = {kTestClientId1, kTestClientId2}; |
+ std::vector<OfflinePageItem> offline_pages = GetPagesByClientIds(client_ids); |
+ EXPECT_EQ(1U, offline_pages.size()); |
+ |
+ const OfflinePageItem& item = offline_pages[0]; |
+ EXPECT_EQ(kTestClientId2.name_space, item.client_id.name_space); |
+ EXPECT_EQ(kTestClientId2.id, item.client_id.id); |
+ EXPECT_EQ(kTestUrl2, item.url); |
+} |
+ |
+TEST_F(OfflinePageModelImplTest, DeletePagesByClientIds) { |
+ // We will save 3 pages. |
+ std::pair<SavePageResult, int64_t> saved_pages[3]; |
+ saved_pages[0] = SavePage(kTestUrl, kTestClientId1); |
+ saved_pages[1] = SavePage(kTestUrl2, kTestClientId2); |
+ saved_pages[2] = SavePage(kTestUrl3, kTestClientId3); |
+ |
+ for (const auto& save_result : saved_pages) { |
+ ASSERT_EQ(OfflinePageModel::SavePageResult::SUCCESS, |
+ std::get<0>(save_result)); |
+ } |
+ |
+ std::vector<ClientId> client_ids = {kTestClientId1, kTestClientId2}; |
+ DeletePagesByClientIds(client_ids); |
+ std::vector<OfflinePageItem> offline_pages = GetAllPages(); |
+ ASSERT_EQ(1U, offline_pages.size()); |
+ |
+ const OfflinePageItem& item = offline_pages[0]; |
+ EXPECT_EQ(kTestClientId3.name_space, item.client_id.name_space); |
+ EXPECT_EQ(kTestClientId3.id, item.client_id.id); |
+ EXPECT_EQ(kTestUrl3, item.url); |
+} |
+ |
TEST_F(OfflinePageModelImplTest, CustomTabsNamespace) { |
SavePage(kTestUrl, ClientId(kCCTNamespace, "123")); |
std::string histogram_name = "OfflinePages.SavePageResult."; |