OLD | NEW |
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 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
77 void OfflinePageDeleted(int64_t offline_id, | 77 void OfflinePageDeleted(int64_t offline_id, |
78 const ClientId& client_id) override; | 78 const ClientId& client_id) override; |
79 | 79 |
80 // OfflinePageTestArchiver::Observer implementation. | 80 // OfflinePageTestArchiver::Observer implementation. |
81 void SetLastPathCreatedByArchiver(const base::FilePath& file_path) override; | 81 void SetLastPathCreatedByArchiver(const base::FilePath& file_path) override; |
82 | 82 |
83 // OfflinePageModel callbacks. | 83 // OfflinePageModel callbacks. |
84 void OnSavePageDone(SavePageResult result, int64_t offline_id); | 84 void OnSavePageDone(SavePageResult result, int64_t offline_id); |
85 void OnDeletePageDone(DeletePageResult result); | 85 void OnDeletePageDone(DeletePageResult result); |
86 void OnCheckPagesExistOfflineDone(const CheckPagesExistOfflineResult& result); | 86 void OnCheckPagesExistOfflineDone(const CheckPagesExistOfflineResult& result); |
87 void OnClearAllDone(); | |
88 void OnGetOfflineIdsForClientIdDone(MultipleOfflineIdResult* storage, | 87 void OnGetOfflineIdsForClientIdDone(MultipleOfflineIdResult* storage, |
89 const MultipleOfflineIdResult& result); | 88 const MultipleOfflineIdResult& result); |
90 void OnGetSingleOfflinePageItemResult(const OfflinePageItem** storage, | 89 void OnGetSingleOfflinePageItemResult(const OfflinePageItem** storage, |
91 const OfflinePageItem* result); | 90 const OfflinePageItem* result); |
92 void OnGetMultipleOfflinePageItemsResult( | 91 void OnGetMultipleOfflinePageItemsResult( |
93 MultipleOfflinePageItemResult* storage, | 92 MultipleOfflinePageItemResult* storage, |
94 const MultipleOfflinePageItemResult& result); | 93 const MultipleOfflinePageItemResult& result); |
95 void OnPagesExpired(bool result); | 94 void OnPagesExpired(bool result); |
96 | 95 |
97 // OfflinePageMetadataStore callbacks. | 96 // OfflinePageMetadataStore callbacks. |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
239 | 238 |
240 void OfflinePageModelImplTest::OnDeletePageDone(DeletePageResult result) { | 239 void OfflinePageModelImplTest::OnDeletePageDone(DeletePageResult result) { |
241 last_delete_result_ = result; | 240 last_delete_result_ = result; |
242 } | 241 } |
243 | 242 |
244 void OfflinePageModelImplTest::OnCheckPagesExistOfflineDone( | 243 void OfflinePageModelImplTest::OnCheckPagesExistOfflineDone( |
245 const CheckPagesExistOfflineResult& result) { | 244 const CheckPagesExistOfflineResult& result) { |
246 last_pages_exist_result_ = result; | 245 last_pages_exist_result_ = result; |
247 } | 246 } |
248 | 247 |
249 void OfflinePageModelImplTest::OnClearAllDone() { | |
250 PumpLoop(); | |
251 } | |
252 | |
253 void OfflinePageModelImplTest::OnStoreUpdateDone(bool /* success - ignored */) { | 248 void OfflinePageModelImplTest::OnStoreUpdateDone(bool /* success - ignored */) { |
254 } | 249 } |
255 | 250 |
256 std::unique_ptr<OfflinePageTestArchiver> | 251 std::unique_ptr<OfflinePageTestArchiver> |
257 OfflinePageModelImplTest::BuildArchiver( | 252 OfflinePageModelImplTest::BuildArchiver( |
258 const GURL& url, | 253 const GURL& url, |
259 OfflinePageArchiver::ArchiverResult result) { | 254 OfflinePageArchiver::ArchiverResult result) { |
260 return std::unique_ptr<OfflinePageTestArchiver>( | 255 return std::unique_ptr<OfflinePageTestArchiver>( |
261 new OfflinePageTestArchiver(this, url, result, kTestTitle, kTestFileSize, | 256 new OfflinePageTestArchiver(this, url, result, kTestTitle, kTestFileSize, |
262 base::ThreadTaskRunnerHandle::Get())); | 257 base::ThreadTaskRunnerHandle::Get())); |
(...skipping 696 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
959 TEST_F(OfflinePageModelImplTest, CanSaveURL) { | 954 TEST_F(OfflinePageModelImplTest, CanSaveURL) { |
960 EXPECT_TRUE(OfflinePageModel::CanSaveURL(GURL("http://foo"))); | 955 EXPECT_TRUE(OfflinePageModel::CanSaveURL(GURL("http://foo"))); |
961 EXPECT_TRUE(OfflinePageModel::CanSaveURL(GURL("https://foo"))); | 956 EXPECT_TRUE(OfflinePageModel::CanSaveURL(GURL("https://foo"))); |
962 EXPECT_FALSE(OfflinePageModel::CanSaveURL(GURL("file:///foo"))); | 957 EXPECT_FALSE(OfflinePageModel::CanSaveURL(GURL("file:///foo"))); |
963 EXPECT_FALSE(OfflinePageModel::CanSaveURL(GURL("data:image/png;base64,ab"))); | 958 EXPECT_FALSE(OfflinePageModel::CanSaveURL(GURL("data:image/png;base64,ab"))); |
964 EXPECT_FALSE(OfflinePageModel::CanSaveURL(GURL("chrome://version"))); | 959 EXPECT_FALSE(OfflinePageModel::CanSaveURL(GURL("chrome://version"))); |
965 EXPECT_FALSE(OfflinePageModel::CanSaveURL(GURL("chrome-native://newtab/"))); | 960 EXPECT_FALSE(OfflinePageModel::CanSaveURL(GURL("chrome-native://newtab/"))); |
966 EXPECT_FALSE(OfflinePageModel::CanSaveURL(GURL("/invalid/url.mhtml"))); | 961 EXPECT_FALSE(OfflinePageModel::CanSaveURL(GURL("/invalid/url.mhtml"))); |
967 } | 962 } |
968 | 963 |
969 TEST_F(OfflinePageModelImplTest, ClearAll) { | |
970 SavePage(kTestUrl, kTestClientId1); | |
971 SavePage(kTestUrl2, kTestClientId2); | |
972 | |
973 const std::vector<OfflinePageItem>& offline_pages = GetAllPages(); | |
974 EXPECT_EQ(2UL, offline_pages.size()); | |
975 EXPECT_EQ(2UL, GetStore()->GetAllPages().size()); | |
976 base::FilePath archiver_path = offline_pages[0].file_path; | |
977 EXPECT_TRUE(base::PathExists(archiver_path)); | |
978 | |
979 // ClearAll should delete all the files and wipe out both cache and store. | |
980 model()->ClearAll( | |
981 base::Bind(&OfflinePageModelImplTest::OnClearAllDone, AsWeakPtr())); | |
982 PumpLoop(); | |
983 EXPECT_EQ(0UL, GetAllPages().size()); | |
984 EXPECT_EQ(0UL, GetStore()->GetAllPages().size()); | |
985 EXPECT_FALSE(base::PathExists(archiver_path)); | |
986 | |
987 // The model should reload the store after the reset. All model operations | |
988 // should continue to work. | |
989 SavePage(kTestUrl2, kTestClientId2); | |
990 EXPECT_EQ(1UL, GetAllPages().size()); | |
991 EXPECT_EQ(1UL, GetStore()->GetAllPages().size()); | |
992 } | |
993 | |
994 TEST_F(OfflinePageModelImplTest, SaveRetrieveMultipleClientIds) { | 964 TEST_F(OfflinePageModelImplTest, SaveRetrieveMultipleClientIds) { |
995 EXPECT_FALSE(HasPages(kTestClientNamespace)); | 965 EXPECT_FALSE(HasPages(kTestClientNamespace)); |
996 SavePage(kTestUrl, kTestClientId1); | 966 SavePage(kTestUrl, kTestClientId1); |
997 int64_t offline1 = last_save_offline_id(); | 967 int64_t offline1 = last_save_offline_id(); |
998 EXPECT_TRUE(HasPages(kTestClientNamespace)); | 968 EXPECT_TRUE(HasPages(kTestClientNamespace)); |
999 | 969 |
1000 SavePage(kTestUrl2, kTestClientId1); | 970 SavePage(kTestUrl2, kTestClientId1); |
1001 int64_t offline2 = last_save_offline_id(); | 971 int64_t offline2 = last_save_offline_id(); |
1002 | 972 |
1003 EXPECT_NE(offline1, offline2); | 973 EXPECT_NE(offline1, offline2); |
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1227 // Check if feature is correctly enabled by command-line flag. | 1197 // Check if feature is correctly enabled by command-line flag. |
1228 scoped_feature_list.reset(new base::test::ScopedFeatureList); | 1198 scoped_feature_list.reset(new base::test::ScopedFeatureList); |
1229 scoped_feature_list->InitFromCommandLine( | 1199 scoped_feature_list->InitFromCommandLine( |
1230 std::string(kOfflineBookmarksFeature.name) + "," + | 1200 std::string(kOfflineBookmarksFeature.name) + "," + |
1231 kOfflinePagesSharingFeature.name, | 1201 kOfflinePagesSharingFeature.name, |
1232 ""); | 1202 ""); |
1233 EXPECT_TRUE(offline_pages::IsOfflinePagesSharingEnabled()); | 1203 EXPECT_TRUE(offline_pages::IsOfflinePagesSharingEnabled()); |
1234 } | 1204 } |
1235 | 1205 |
1236 } // namespace offline_pages | 1206 } // namespace offline_pages |
OLD | NEW |