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

Unified Diff: components/offline_pages/offline_page_model_impl_unittest.cc

Issue 2503853004: Support getting offline pages also by original URL (Closed)
Patch Set: Rebase Created 4 years, 1 month 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_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 7dda69644dcfb092d4a954271c11d3f6aa6c2c19..6d85191f2828a48ce9502fb7207b79404604d791 100644
--- a/components/offline_pages/offline_page_model_impl_unittest.cc
+++ b/components/offline_pages/offline_page_model_impl_unittest.cc
@@ -158,7 +158,8 @@ class OfflinePageModelImplTest
std::unique_ptr<OfflinePageItem> GetPageByOfflineId(int64_t offline_id);
- MultipleOfflinePageItemResult GetPagesByOnlineURL(const GURL& online_url);
+ MultipleOfflinePageItemResult GetPagesByFinalURL(const GURL& url);
+ MultipleOfflinePageItemResult GetPagesByAnyURL(const GURL& url);
OfflinePageModelImpl* model() { return model_.get(); }
@@ -444,11 +445,24 @@ void OfflinePageModelImplTest::OnPagesExpired(bool result) {
last_expire_page_result_ = result;
}
-MultipleOfflinePageItemResult OfflinePageModelImplTest::GetPagesByOnlineURL(
- const GURL& online_url) {
+MultipleOfflinePageItemResult OfflinePageModelImplTest::GetPagesByFinalURL(
+ const GURL& url) {
MultipleOfflinePageItemResult result;
- model()->GetPagesByOnlineURL(
- online_url,
+ model()->GetPagesByURL(
+ url,
+ true /* search_by_final_url_only */,
+ base::Bind(&OfflinePageModelImplTest::OnGetMultipleOfflinePageItemsResult,
+ AsWeakPtr(), base::Unretained(&result)));
+ PumpLoop();
+ return result;
+}
+
+MultipleOfflinePageItemResult OfflinePageModelImplTest::GetPagesByAnyURL(
+ const GURL& url) {
+ MultipleOfflinePageItemResult result;
+ model()->GetPagesByURL(
+ url,
+ false /* search_by_final_url_only */,
base::Bind(&OfflinePageModelImplTest::OnGetMultipleOfflinePageItemsResult,
AsWeakPtr(), base::Unretained(&result)));
PumpLoop();
@@ -924,45 +938,70 @@ TEST_F(OfflinePageModelImplTest, GetPageByOfflineId) {
EXPECT_FALSE(page);
}
-TEST_F(OfflinePageModelImplTest, GetPagesByOnlineURL) {
+TEST_F(OfflinePageModelImplTest, GetPagesByFinalURL) {
SavePage(kTestUrl, kTestClientId1);
SavePage(kTestUrl2, kTestClientId2);
- MultipleOfflinePageItemResult pages = GetPagesByOnlineURL(kTestUrl2);
+ MultipleOfflinePageItemResult pages = GetPagesByFinalURL(kTestUrl2);
EXPECT_EQ(1U, pages.size());
EXPECT_EQ(kTestUrl2, pages[0].url);
EXPECT_EQ(kTestClientId2, pages[0].client_id);
- pages = GetPagesByOnlineURL(kTestUrl);
+ pages = GetPagesByFinalURL(kTestUrl);
EXPECT_EQ(1U, pages.size());
EXPECT_EQ(kTestUrl, pages[0].url);
EXPECT_EQ(kTestClientId1, pages[0].client_id);
- pages = GetPagesByOnlineURL(GURL("http://foo"));
+ pages = GetPagesByFinalURL(GURL("http://foo"));
EXPECT_EQ(0U, pages.size());
}
-TEST_F(OfflinePageModelImplTest, GetPagesByOnlineURLWithFragment) {
+TEST_F(OfflinePageModelImplTest, GetPagesByFinalURLWithFragment) {
SavePage(kTestUrl, kTestClientId1);
SavePage(kTestUrl2WithFragment, kTestClientId2);
MultipleOfflinePageItemResult pages =
- GetPagesByOnlineURL(kTestUrlWithFragment);
+ GetPagesByFinalURL(kTestUrlWithFragment);
EXPECT_EQ(1U, pages.size());
EXPECT_EQ(kTestUrl, pages[0].url);
EXPECT_EQ(kTestClientId1, pages[0].client_id);
- pages = GetPagesByOnlineURL(kTestUrl2);
+ pages = GetPagesByFinalURL(kTestUrl2);
EXPECT_EQ(1U, pages.size());
EXPECT_EQ(kTestUrl2WithFragment, pages[0].url);
EXPECT_EQ(kTestClientId2, pages[0].client_id);
- pages = GetPagesByOnlineURL(kTestUrl2WithFragment2);
+ pages = GetPagesByFinalURL(kTestUrl2WithFragment2);
EXPECT_EQ(1U, pages.size());
EXPECT_EQ(kTestUrl2WithFragment, pages[0].url);
EXPECT_EQ(kTestClientId2, pages[0].client_id);
}
+TEST_F(OfflinePageModelImplTest, GetPagesByEitherOriginalURLOrFinalURL) {
+ std::unique_ptr<OfflinePageTestArchiver> archiver(BuildArchiver(
+ kTestUrl, OfflinePageArchiver::ArchiverResult::SUCCESSFULLY_CREATED));
+ SavePageWithArchiverAsync(
+ kTestUrl, kTestClientId1, kTestUrl2, std::move(archiver));
+ PumpLoop();
+
+ SavePage(kTestUrl2, kTestClientId2);
+
+ MultipleOfflinePageItemResult pages = GetPagesByAnyURL(kTestUrl2);
+ ASSERT_EQ(2U, pages.size());
+ int i = -1;
fgorski 2016/11/16 23:43:46 Add a comment about this trick.
jianli 2016/11/17 01:12:15 Done.
+ if (pages[0].url == kTestUrl2)
+ i = 0;
+ else if (pages[1].url == kTestUrl2)
+ i = 1;
+ ASSERT_NE(-1, i);
+ EXPECT_EQ(kTestUrl2, pages[i].url);
+ EXPECT_EQ(kTestClientId2, pages[i].client_id);
+ EXPECT_EQ(GURL(), pages[i].original_url);
+ EXPECT_EQ(kTestUrl, pages[1 - i].url);
+ EXPECT_EQ(kTestClientId1, pages[1 - i].client_id);
+ EXPECT_EQ(kTestUrl2, pages[1 - i].original_url);
+}
+
TEST_F(OfflinePageModelImplTest, CheckPagesExistOffline) {
SavePage(kTestUrl, kTestClientId1);
SavePage(kTestUrl2, kTestClientId2);

Powered by Google App Engine
This is Rietveld 408576698