| 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.";
|
|
|