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

Side by Side Diff: components/offline_pages/offline_page_model_unittest.cc

Issue 2006923005: [Offline Pages] Two-step expiration in storage manager. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: more comments, commit ready. Created 4 years, 6 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 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.h" 5 #include "components/offline_pages/offline_page_model.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 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 void OnCheckPagesExistOfflineDone(const CheckPagesExistOfflineResult& result); 80 void OnCheckPagesExistOfflineDone(const CheckPagesExistOfflineResult& result);
81 void OnClearAllDone(); 81 void OnClearAllDone();
82 void OnGetOfflineIdsForClientIdDone(MultipleOfflineIdResult* storage, 82 void OnGetOfflineIdsForClientIdDone(MultipleOfflineIdResult* storage,
83 const MultipleOfflineIdResult& result); 83 const MultipleOfflineIdResult& result);
84 void OnGetSingleOfflinePageItemResult( 84 void OnGetSingleOfflinePageItemResult(
85 SingleOfflinePageItemResult* storage, 85 SingleOfflinePageItemResult* storage,
86 const SingleOfflinePageItemResult& result); 86 const SingleOfflinePageItemResult& result);
87 void OnGetMultipleOfflinePageItemsResult( 87 void OnGetMultipleOfflinePageItemsResult(
88 MultipleOfflinePageItemResult* storage, 88 MultipleOfflinePageItemResult* storage,
89 const MultipleOfflinePageItemResult& result); 89 const MultipleOfflinePageItemResult& result);
90 void OnPagesExpired(bool result);
90 91
91 // OfflinePageMetadataStore callbacks. 92 // OfflinePageMetadataStore callbacks.
92 void OnStoreUpdateDone(bool /* success */); 93 void OnStoreUpdateDone(bool /* success */);
93 94
94 std::unique_ptr<OfflinePageTestArchiver> BuildArchiver( 95 std::unique_ptr<OfflinePageTestArchiver> BuildArchiver(
95 const GURL& url, 96 const GURL& url,
96 OfflinePageArchiver::ArchiverResult result); 97 OfflinePageArchiver::ArchiverResult result);
97 std::unique_ptr<OfflinePageMetadataStore> BuildStore(); 98 std::unique_ptr<OfflinePageMetadataStore> BuildStore();
98 std::unique_ptr<OfflinePageModel> BuildModel( 99 std::unique_ptr<OfflinePageModel> BuildModel(
99 std::unique_ptr<OfflinePageMetadataStore> store); 100 std::unique_ptr<OfflinePageMetadataStore> store);
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 ClientId last_deleted_client_id() const { return last_deleted_client_id_; } 157 ClientId last_deleted_client_id() const { return last_deleted_client_id_; }
157 158
158 const base::FilePath& last_archiver_path() { return last_archiver_path_; } 159 const base::FilePath& last_archiver_path() { return last_archiver_path_; }
159 160
160 int last_cleared_pages_count() const { return last_cleared_pages_count_; } 161 int last_cleared_pages_count() const { return last_cleared_pages_count_; }
161 162
162 DeletePageResult last_clear_page_result() const { 163 DeletePageResult last_clear_page_result() const {
163 return last_clear_page_result_; 164 return last_clear_page_result_;
164 } 165 }
165 166
167 bool last_expire_page_result() const { return last_expire_page_result_; }
168
166 private: 169 private:
167 scoped_refptr<base::TestMockTimeTaskRunner> task_runner_; 170 scoped_refptr<base::TestMockTimeTaskRunner> task_runner_;
168 base::ThreadTaskRunnerHandle task_runner_handle_; 171 base::ThreadTaskRunnerHandle task_runner_handle_;
169 base::ScopedTempDir temp_dir_; 172 base::ScopedTempDir temp_dir_;
170 173
171 std::unique_ptr<OfflinePageModel> model_; 174 std::unique_ptr<OfflinePageModel> model_;
172 SavePageResult last_save_result_; 175 SavePageResult last_save_result_;
173 int64_t last_save_offline_id_; 176 int64_t last_save_offline_id_;
174 DeletePageResult last_delete_result_; 177 DeletePageResult last_delete_result_;
175 base::FilePath last_archiver_path_; 178 base::FilePath last_archiver_path_;
176 int64_t last_deleted_offline_id_; 179 int64_t last_deleted_offline_id_;
177 ClientId last_deleted_client_id_; 180 ClientId last_deleted_client_id_;
178 bool last_has_pages_result_; 181 bool last_has_pages_result_;
179 CheckPagesExistOfflineResult last_pages_exist_result_; 182 CheckPagesExistOfflineResult last_pages_exist_result_;
180 int last_cleared_pages_count_; 183 int last_cleared_pages_count_;
181 DeletePageResult last_clear_page_result_; 184 DeletePageResult last_clear_page_result_;
185 bool last_expire_page_result_;
182 }; 186 };
183 187
184 OfflinePageModelTest::OfflinePageModelTest() 188 OfflinePageModelTest::OfflinePageModelTest()
185 : task_runner_(new base::TestMockTimeTaskRunner), 189 : task_runner_(new base::TestMockTimeTaskRunner),
186 task_runner_handle_(task_runner_), 190 task_runner_handle_(task_runner_),
187 last_save_result_(SavePageResult::CANCELLED), 191 last_save_result_(SavePageResult::CANCELLED),
188 last_save_offline_id_(-1), 192 last_save_offline_id_(-1),
189 last_delete_result_(DeletePageResult::CANCELLED), 193 last_delete_result_(DeletePageResult::CANCELLED),
190 last_deleted_offline_id_(-1) {} 194 last_deleted_offline_id_(-1) {}
191 195
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
380 const SingleOfflinePageItemResult& result) { 384 const SingleOfflinePageItemResult& result) {
381 *storage = result; 385 *storage = result;
382 } 386 }
383 387
384 void OfflinePageModelTest::OnGetMultipleOfflinePageItemsResult( 388 void OfflinePageModelTest::OnGetMultipleOfflinePageItemsResult(
385 MultipleOfflinePageItemResult* storage, 389 MultipleOfflinePageItemResult* storage,
386 const MultipleOfflinePageItemResult& result) { 390 const MultipleOfflinePageItemResult& result) {
387 *storage = result; 391 *storage = result;
388 } 392 }
389 393
394 void OfflinePageModelTest::OnPagesExpired(bool result) {
395 last_expire_page_result_ = result;
396 }
397
390 base::Optional<OfflinePageItem> OfflinePageModelTest::GetPagesByOnlineURL( 398 base::Optional<OfflinePageItem> OfflinePageModelTest::GetPagesByOnlineURL(
391 const GURL& online_url) { 399 const GURL& online_url) {
392 MultipleOfflinePageItemResult result; 400 MultipleOfflinePageItemResult result;
393 model()->GetPagesByOnlineURL( 401 model()->GetPagesByOnlineURL(
394 online_url, 402 online_url,
395 base::Bind(&OfflinePageModelTest::OnGetMultipleOfflinePageItemsResult, 403 base::Bind(&OfflinePageModelTest::OnGetMultipleOfflinePageItemsResult,
396 AsWeakPtr(), base::Unretained(&result))); 404 AsWeakPtr(), base::Unretained(&result)));
397 PumpLoop(); 405 PumpLoop();
398 if (result.size() > 0) 406 if (result.size() > 0)
399 return base::make_optional(result[0]); 407 return base::make_optional(result[0]);
(...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after
968 std::get<0>(save_result)); 976 std::get<0>(save_result));
969 } 977 }
970 978
971 // First two pages will be expired. 979 // First two pages will be expired.
972 std::vector<int64_t> pages_to_expire = {std::get<1>(saved_pages[0]), 980 std::vector<int64_t> pages_to_expire = {std::get<1>(saved_pages[0]),
973 std::get<1>(saved_pages[1])}; 981 std::get<1>(saved_pages[1])};
974 // Pages are marked as expired if they have an expiration_time set. 982 // Pages are marked as expired if they have an expiration_time set.
975 base::Time expiration_time = 983 base::Time expiration_time =
976 base::Time::Now() + base::TimeDelta::FromMinutes(5); 984 base::Time::Now() + base::TimeDelta::FromMinutes(5);
977 985
978 model()->ExpirePages(pages_to_expire, expiration_time); 986 model()->ExpirePages(
987 pages_to_expire, expiration_time,
988 base::Bind(&OfflinePageModelTest::OnPagesExpired, AsWeakPtr()));
979 PumpLoop(); 989 PumpLoop();
980 990
981 const std::vector<OfflinePageItem>& offline_pages = GetAllPages(); 991 const std::vector<OfflinePageItem>& offline_pages = GetAllPages();
982 for (const auto& offline_page : offline_pages) { 992 for (const auto& offline_page : offline_pages) {
983 if (std::find(pages_to_expire.begin(), pages_to_expire.end(), 993 if (std::find(pages_to_expire.begin(), pages_to_expire.end(),
984 offline_page.offline_id) != pages_to_expire.end()) { 994 offline_page.offline_id) != pages_to_expire.end()) {
985 EXPECT_EQ(expiration_time, offline_page.expiration_time); 995 EXPECT_EQ(expiration_time, offline_page.expiration_time);
986 EXPECT_TRUE(offline_page.IsExpired()); 996 EXPECT_TRUE(offline_page.IsExpired());
987 } else { 997 } else {
988 EXPECT_EQ(base::Time(), offline_page.expiration_time); 998 EXPECT_EQ(base::Time(), offline_page.expiration_time);
989 EXPECT_FALSE(offline_page.IsExpired()); 999 EXPECT_FALSE(offline_page.IsExpired());
990 } 1000 }
991 } 1001 }
1002 EXPECT_TRUE(last_expire_page_result());
992 } 1003 }
993 1004
994 TEST(CommandLineFlagsTest, OfflineBookmarks) { 1005 TEST(CommandLineFlagsTest, OfflineBookmarks) {
995 // Disabled by default. 1006 // Disabled by default.
996 EXPECT_FALSE(offline_pages::IsOfflineBookmarksEnabled()); 1007 EXPECT_FALSE(offline_pages::IsOfflineBookmarksEnabled());
997 1008
998 // Check if feature is correctly enabled by command-line flag. 1009 // Check if feature is correctly enabled by command-line flag.
999 base::FeatureList::ClearInstanceForTesting(); 1010 base::FeatureList::ClearInstanceForTesting();
1000 std::unique_ptr<base::FeatureList> feature_list(new base::FeatureList); 1011 std::unique_ptr<base::FeatureList> feature_list(new base::FeatureList);
1001 feature_list->InitializeFromCommandLine( 1012 feature_list->InitializeFromCommandLine(
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
1044 std::unique_ptr<base::FeatureList> feature_list2(new base::FeatureList); 1055 std::unique_ptr<base::FeatureList> feature_list2(new base::FeatureList);
1045 feature_list2->InitializeFromCommandLine( 1056 feature_list2->InitializeFromCommandLine(
1046 std::string(offline_pages::kOfflineBookmarksFeature.name) + "," + 1057 std::string(offline_pages::kOfflineBookmarksFeature.name) + "," +
1047 offline_pages::kOfflinePagesBackgroundLoadingFeature.name, 1058 offline_pages::kOfflinePagesBackgroundLoadingFeature.name,
1048 ""); 1059 "");
1049 base::FeatureList::SetInstance(std::move(feature_list2)); 1060 base::FeatureList::SetInstance(std::move(feature_list2));
1050 EXPECT_TRUE(offline_pages::IsOfflinePagesBackgroundLoadingEnabled()); 1061 EXPECT_TRUE(offline_pages::IsOfflinePagesBackgroundLoadingEnabled());
1051 } 1062 }
1052 1063
1053 } // namespace offline_pages 1064 } // namespace offline_pages
OLDNEW
« no previous file with comments | « components/offline_pages/offline_page_model.cc ('k') | components/offline_pages/offline_page_storage_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698