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

Side by Side 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/offline_pages/offline_page_model_impl.h" 5 #include "components/offline_pages/offline_page_model_impl.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 #include <algorithm> 8 #include <algorithm>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 } 151 }
152 152
153 bool HasPages(std::string name_space); 153 bool HasPages(std::string name_space);
154 154
155 CheckPagesExistOfflineResult CheckPagesExistOffline(std::set<GURL>); 155 CheckPagesExistOfflineResult CheckPagesExistOffline(std::set<GURL>);
156 156
157 MultipleOfflineIdResult GetOfflineIdsForClientId(const ClientId& client_id); 157 MultipleOfflineIdResult GetOfflineIdsForClientId(const ClientId& client_id);
158 158
159 std::unique_ptr<OfflinePageItem> GetPageByOfflineId(int64_t offline_id); 159 std::unique_ptr<OfflinePageItem> GetPageByOfflineId(int64_t offline_id);
160 160
161 MultipleOfflinePageItemResult GetPagesByOnlineURL(const GURL& online_url); 161 MultipleOfflinePageItemResult GetPagesByFinalURL(const GURL& url);
162 MultipleOfflinePageItemResult GetPagesByAnyURL(const GURL& url);
162 163
163 OfflinePageModelImpl* model() { return model_.get(); } 164 OfflinePageModelImpl* model() { return model_.get(); }
164 165
165 int64_t last_save_offline_id() const { return last_save_offline_id_; } 166 int64_t last_save_offline_id() const { return last_save_offline_id_; }
166 167
167 SavePageResult last_save_result() const { return last_save_result_; } 168 SavePageResult last_save_result() const { return last_save_result_; }
168 169
169 DeletePageResult last_delete_result() const { return last_delete_result_; } 170 DeletePageResult last_delete_result() const { return last_delete_result_; }
170 171
171 int64_t last_deleted_offline_id() const { return last_deleted_offline_id_; } 172 int64_t last_deleted_offline_id() const { return last_deleted_offline_id_; }
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 void OfflinePageModelImplTest::OnGetMultipleOfflinePageItemsResult( 438 void OfflinePageModelImplTest::OnGetMultipleOfflinePageItemsResult(
438 MultipleOfflinePageItemResult* storage, 439 MultipleOfflinePageItemResult* storage,
439 const MultipleOfflinePageItemResult& result) { 440 const MultipleOfflinePageItemResult& result) {
440 *storage = result; 441 *storage = result;
441 } 442 }
442 443
443 void OfflinePageModelImplTest::OnPagesExpired(bool result) { 444 void OfflinePageModelImplTest::OnPagesExpired(bool result) {
444 last_expire_page_result_ = result; 445 last_expire_page_result_ = result;
445 } 446 }
446 447
447 MultipleOfflinePageItemResult OfflinePageModelImplTest::GetPagesByOnlineURL( 448 MultipleOfflinePageItemResult OfflinePageModelImplTest::GetPagesByFinalURL(
448 const GURL& online_url) { 449 const GURL& url) {
449 MultipleOfflinePageItemResult result; 450 MultipleOfflinePageItemResult result;
450 model()->GetPagesByOnlineURL( 451 model()->GetPagesByURL(
451 online_url, 452 url,
453 true /* search_by_final_url_only */,
452 base::Bind(&OfflinePageModelImplTest::OnGetMultipleOfflinePageItemsResult, 454 base::Bind(&OfflinePageModelImplTest::OnGetMultipleOfflinePageItemsResult,
453 AsWeakPtr(), base::Unretained(&result))); 455 AsWeakPtr(), base::Unretained(&result)));
454 PumpLoop(); 456 PumpLoop();
457 return result;
458 }
459
460 MultipleOfflinePageItemResult OfflinePageModelImplTest::GetPagesByAnyURL(
461 const GURL& url) {
462 MultipleOfflinePageItemResult result;
463 model()->GetPagesByURL(
464 url,
465 false /* search_by_final_url_only */,
466 base::Bind(&OfflinePageModelImplTest::OnGetMultipleOfflinePageItemsResult,
467 AsWeakPtr(), base::Unretained(&result)));
468 PumpLoop();
455 return result; 469 return result;
456 } 470 }
457 471
458 bool OfflinePageModelImplTest::HasPages(std::string name_space) { 472 bool OfflinePageModelImplTest::HasPages(std::string name_space) {
459 MultipleOfflinePageItemResult all_pages = GetAllPages(); 473 MultipleOfflinePageItemResult all_pages = GetAllPages();
460 for (const auto& page : all_pages) { 474 for (const auto& page : all_pages) {
461 if (page.client_id.name_space == name_space) 475 if (page.client_id.name_space == name_space)
462 return true; 476 return true;
463 } 477 }
464 478
(...skipping 452 matching lines...) Expand 10 before | Expand all | Expand 10 after
917 page = GetPageByOfflineId(offline2); 931 page = GetPageByOfflineId(offline2);
918 ASSERT_TRUE(page); 932 ASSERT_TRUE(page);
919 EXPECT_EQ(kTestUrl2, page->url); 933 EXPECT_EQ(kTestUrl2, page->url);
920 EXPECT_EQ(kTestClientId2, page->client_id); 934 EXPECT_EQ(kTestClientId2, page->client_id);
921 EXPECT_EQ(kTestFileSize, page->file_size); 935 EXPECT_EQ(kTestFileSize, page->file_size);
922 936
923 page = GetPageByOfflineId(-42); 937 page = GetPageByOfflineId(-42);
924 EXPECT_FALSE(page); 938 EXPECT_FALSE(page);
925 } 939 }
926 940
927 TEST_F(OfflinePageModelImplTest, GetPagesByOnlineURL) { 941 TEST_F(OfflinePageModelImplTest, GetPagesByFinalURL) {
928 SavePage(kTestUrl, kTestClientId1); 942 SavePage(kTestUrl, kTestClientId1);
929 SavePage(kTestUrl2, kTestClientId2); 943 SavePage(kTestUrl2, kTestClientId2);
930 944
931 MultipleOfflinePageItemResult pages = GetPagesByOnlineURL(kTestUrl2); 945 MultipleOfflinePageItemResult pages = GetPagesByFinalURL(kTestUrl2);
932 EXPECT_EQ(1U, pages.size()); 946 EXPECT_EQ(1U, pages.size());
933 EXPECT_EQ(kTestUrl2, pages[0].url); 947 EXPECT_EQ(kTestUrl2, pages[0].url);
934 EXPECT_EQ(kTestClientId2, pages[0].client_id); 948 EXPECT_EQ(kTestClientId2, pages[0].client_id);
935 949
936 pages = GetPagesByOnlineURL(kTestUrl); 950 pages = GetPagesByFinalURL(kTestUrl);
937 EXPECT_EQ(1U, pages.size()); 951 EXPECT_EQ(1U, pages.size());
938 EXPECT_EQ(kTestUrl, pages[0].url); 952 EXPECT_EQ(kTestUrl, pages[0].url);
939 EXPECT_EQ(kTestClientId1, pages[0].client_id); 953 EXPECT_EQ(kTestClientId1, pages[0].client_id);
940 954
941 pages = GetPagesByOnlineURL(GURL("http://foo")); 955 pages = GetPagesByFinalURL(GURL("http://foo"));
942 EXPECT_EQ(0U, pages.size()); 956 EXPECT_EQ(0U, pages.size());
943 } 957 }
944 958
945 TEST_F(OfflinePageModelImplTest, GetPagesByOnlineURLWithFragment) { 959 TEST_F(OfflinePageModelImplTest, GetPagesByFinalURLWithFragment) {
946 SavePage(kTestUrl, kTestClientId1); 960 SavePage(kTestUrl, kTestClientId1);
947 SavePage(kTestUrl2WithFragment, kTestClientId2); 961 SavePage(kTestUrl2WithFragment, kTestClientId2);
948 962
949 MultipleOfflinePageItemResult pages = 963 MultipleOfflinePageItemResult pages =
950 GetPagesByOnlineURL(kTestUrlWithFragment); 964 GetPagesByFinalURL(kTestUrlWithFragment);
951 EXPECT_EQ(1U, pages.size()); 965 EXPECT_EQ(1U, pages.size());
952 EXPECT_EQ(kTestUrl, pages[0].url); 966 EXPECT_EQ(kTestUrl, pages[0].url);
953 EXPECT_EQ(kTestClientId1, pages[0].client_id); 967 EXPECT_EQ(kTestClientId1, pages[0].client_id);
954 968
955 pages = GetPagesByOnlineURL(kTestUrl2); 969 pages = GetPagesByFinalURL(kTestUrl2);
956 EXPECT_EQ(1U, pages.size()); 970 EXPECT_EQ(1U, pages.size());
957 EXPECT_EQ(kTestUrl2WithFragment, pages[0].url); 971 EXPECT_EQ(kTestUrl2WithFragment, pages[0].url);
958 EXPECT_EQ(kTestClientId2, pages[0].client_id); 972 EXPECT_EQ(kTestClientId2, pages[0].client_id);
959 973
960 pages = GetPagesByOnlineURL(kTestUrl2WithFragment2); 974 pages = GetPagesByFinalURL(kTestUrl2WithFragment2);
961 EXPECT_EQ(1U, pages.size()); 975 EXPECT_EQ(1U, pages.size());
962 EXPECT_EQ(kTestUrl2WithFragment, pages[0].url); 976 EXPECT_EQ(kTestUrl2WithFragment, pages[0].url);
963 EXPECT_EQ(kTestClientId2, pages[0].client_id); 977 EXPECT_EQ(kTestClientId2, pages[0].client_id);
964 } 978 }
965 979
980 TEST_F(OfflinePageModelImplTest, GetPagesByEitherOriginalURLOrFinalURL) {
981 std::unique_ptr<OfflinePageTestArchiver> archiver(BuildArchiver(
982 kTestUrl, OfflinePageArchiver::ArchiverResult::SUCCESSFULLY_CREATED));
983 SavePageWithArchiverAsync(
984 kTestUrl, kTestClientId1, kTestUrl2, std::move(archiver));
985 PumpLoop();
986
987 SavePage(kTestUrl2, kTestClientId2);
988
989 MultipleOfflinePageItemResult pages = GetPagesByAnyURL(kTestUrl2);
990 ASSERT_EQ(2U, pages.size());
991 int i = -1;
fgorski 2016/11/16 23:43:46 Add a comment about this trick.
jianli 2016/11/17 01:12:15 Done.
992 if (pages[0].url == kTestUrl2)
993 i = 0;
994 else if (pages[1].url == kTestUrl2)
995 i = 1;
996 ASSERT_NE(-1, i);
997 EXPECT_EQ(kTestUrl2, pages[i].url);
998 EXPECT_EQ(kTestClientId2, pages[i].client_id);
999 EXPECT_EQ(GURL(), pages[i].original_url);
1000 EXPECT_EQ(kTestUrl, pages[1 - i].url);
1001 EXPECT_EQ(kTestClientId1, pages[1 - i].client_id);
1002 EXPECT_EQ(kTestUrl2, pages[1 - i].original_url);
1003 }
1004
966 TEST_F(OfflinePageModelImplTest, CheckPagesExistOffline) { 1005 TEST_F(OfflinePageModelImplTest, CheckPagesExistOffline) {
967 SavePage(kTestUrl, kTestClientId1); 1006 SavePage(kTestUrl, kTestClientId1);
968 SavePage(kTestUrl2, kTestClientId2); 1007 SavePage(kTestUrl2, kTestClientId2);
969 1008
970 // TODO(dewittj): Remove the "Last N" restriction in favor of a better query 1009 // TODO(dewittj): Remove the "Last N" restriction in favor of a better query
971 // interface. See https://crbug.com/622763 for information. 1010 // interface. See https://crbug.com/622763 for information.
972 const ClientId last_n_client_id(kLastNNamespace, "1234"); 1011 const ClientId last_n_client_id(kLastNNamespace, "1234");
973 SavePage(kTestUrl3, last_n_client_id); 1012 SavePage(kTestUrl3, last_n_client_id);
974 1013
975 std::set<GURL> input; 1014 std::set<GURL> input;
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
1257 EXPECT_FALSE(offline_pages::IsOfflinePagesSvelteConcurrentLoadingEnabled()); 1296 EXPECT_FALSE(offline_pages::IsOfflinePagesSvelteConcurrentLoadingEnabled());
1258 1297
1259 // Check if feature is correctly enabled by command-line flag. 1298 // Check if feature is correctly enabled by command-line flag.
1260 base::test::ScopedFeatureList scoped_feature_list; 1299 base::test::ScopedFeatureList scoped_feature_list;
1261 scoped_feature_list.InitAndEnableFeature( 1300 scoped_feature_list.InitAndEnableFeature(
1262 kOfflinePagesSvelteConcurrentLoadingFeature); 1301 kOfflinePagesSvelteConcurrentLoadingFeature);
1263 EXPECT_TRUE(offline_pages::IsOfflinePagesSvelteConcurrentLoadingEnabled()); 1302 EXPECT_TRUE(offline_pages::IsOfflinePagesSvelteConcurrentLoadingEnabled());
1264 } 1303 }
1265 1304
1266 } // namespace offline_pages 1305 } // namespace offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698