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

Unified Diff: components/offline_pages/offline_page_model_unittest.cc

Issue 1959393002: Choose the best offline page when given an online URL. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address nits. Created 4 years, 7 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
« no previous file with comments | « components/offline_pages/offline_page_model.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 fa1b6f6976da8c921a580f962e155d1418a3872c..7eb9663c48a63c4224461a44403439a6f13538a5 100644
--- a/components/offline_pages/offline_page_model_unittest.cc
+++ b/components/offline_pages/offline_page_model_unittest.cc
@@ -123,7 +123,9 @@ class OfflinePageModelTest
MultipleOfflinePageItemResult GetAllPages();
- void SavePage(const GURL& url, ClientId client_id);
+ // Returns the offline ID of the saved page.
+ std::pair<SavePageResult, int64_t> SavePage(const GURL& url,
+ ClientId client_id);
void SavePageWithArchiverResult(const GURL& url,
ClientId client_id,
@@ -308,10 +310,13 @@ OfflinePageTestStore* OfflinePageModelTest::GetStore() {
return static_cast<OfflinePageTestStore*>(model()->GetStoreForTesting());
}
-void OfflinePageModelTest::SavePage(const GURL& url, ClientId client_id) {
+std::pair<SavePageResult, int64_t> OfflinePageModelTest::SavePage(
+ const GURL& url,
+ ClientId client_id) {
SavePageWithArchiverResult(
url, client_id,
OfflinePageArchiver::ArchiverResult::SUCCESSFULLY_CREATED);
+ return std::make_pair(last_save_result_, last_save_offline_id_);
}
void OfflinePageModelTest::SavePageWithArchiverResult(
@@ -983,6 +988,27 @@ TEST_F(OfflinePageModelTest, ClearPagesFromOneSource) {
EXPECT_EQ(DeletePageResult::SUCCESS, last_clear_page_result());
}
+TEST_F(OfflinePageModelTest, 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(CommandLineFlagsTest, OfflineBookmarks) {
// Disabled by default.
EXPECT_FALSE(offline_pages::IsOfflineBookmarksEnabled());
« no previous file with comments | « components/offline_pages/offline_page_model.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698