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

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

Issue 1694863003: Refactor the offline page storage to include client namespace and id. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address comments. Created 4 years, 10 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 29 matching lines...) Expand all
40 const int64_t kTestPageBookmarkId1 = 1234LL; 40 const int64_t kTestPageBookmarkId1 = 1234LL;
41 const GURL kTestUrl2("http://other.page.com"); 41 const GURL kTestUrl2("http://other.page.com");
42 const GURL kTestUrl3("http://test.xyz"); 42 const GURL kTestUrl3("http://test.xyz");
43 const GURL kFileUrl("file:///foo"); 43 const GURL kFileUrl("file:///foo");
44 const int64_t kTestPageBookmarkId2 = 5678LL; 44 const int64_t kTestPageBookmarkId2 = 5678LL;
45 const int64_t kTestPageBookmarkId3 = 42LL; 45 const int64_t kTestPageBookmarkId3 = 42LL;
46 const int64_t kTestFileSize = 876543LL; 46 const int64_t kTestFileSize = 876543LL;
47 47
48 } // namespace 48 } // namespace
49 49
50 class OfflinePageModelTest 50 class OfflinePageModelTest
fgorski 2016/02/23 17:15:31 Any chances of a test where query for offline_page
bburns 2016/02/23 19:25:38 TODO'd I promise to do it in the next CL, but this
51 : public testing::Test, 51 : public testing::Test,
52 public OfflinePageModel::Observer, 52 public OfflinePageModel::Observer,
53 public OfflinePageTestArchiver::Observer, 53 public OfflinePageTestArchiver::Observer,
54 public base::SupportsWeakPtr<OfflinePageModelTest> { 54 public base::SupportsWeakPtr<OfflinePageModelTest> {
55 public: 55 public:
56 OfflinePageModelTest(); 56 OfflinePageModelTest();
57 ~OfflinePageModelTest() override; 57 ~OfflinePageModelTest() override;
58 58
59 void SetUp() override; 59 void SetUp() override;
60 void TearDown() override; 60 void TearDown() override;
61 61
62 // OfflinePageModel::Observer implementation. 62 // OfflinePageModel::Observer implementation.
63 void OfflinePageModelLoaded(OfflinePageModel* model) override; 63 void OfflinePageModelLoaded(OfflinePageModel* model) override;
64 void OfflinePageModelChanged(OfflinePageModel* model) override; 64 void OfflinePageModelChanged(OfflinePageModel* model) override;
65 void OfflinePageDeleted(int64_t bookmark_id) override; 65 void OfflinePageDeleted(int64_t offline_id) override;
66 66
67 // OfflinePageTestArchiver::Observer implementation. 67 // OfflinePageTestArchiver::Observer implementation.
68 void SetLastPathCreatedByArchiver(const base::FilePath& file_path) override; 68 void SetLastPathCreatedByArchiver(const base::FilePath& file_path) override;
69 69
70 // OfflinePageModel callbacks. 70 // OfflinePageModel callbacks.
71 void OnSavePageDone(SavePageResult result); 71 void OnSavePageDone(SavePageResult result);
72 void OnDeletePageDone(DeletePageResult result); 72 void OnDeletePageDone(DeletePageResult result);
73 void OnClearAllDone(); 73 void OnClearAllDone();
74 74
75 // OfflinePageMetadataStore callbacks. 75 // OfflinePageMetadataStore callbacks.
(...skipping 11 matching lines...) Expand all
87 // Runs until all of the tasks that are not delayed are gone from the task 87 // Runs until all of the tasks that are not delayed are gone from the task
88 // queue. 88 // queue.
89 void PumpLoop(); 89 void PumpLoop();
90 // Fast-forwards virtual time by |delta|, causing tasks with a remaining 90 // Fast-forwards virtual time by |delta|, causing tasks with a remaining
91 // delay less than or equal to |delta| to be executed. 91 // delay less than or equal to |delta| to be executed.
92 void FastForwardBy(base::TimeDelta delta); 92 void FastForwardBy(base::TimeDelta delta);
93 void ResetResults(); 93 void ResetResults();
94 94
95 OfflinePageTestStore* GetStore(); 95 OfflinePageTestStore* GetStore();
96 96
97 void SavePage(const GURL& url, int64_t bookmark_id); 97 void SavePage(const GURL& url, int64_t offline_id);
98 void SavePageWithArchiverResult(const GURL& url, 98 void SavePageWithArchiverResult(const GURL& url,
99 int64_t bookmark_id, 99 int64_t offline_id,
100 OfflinePageArchiver::ArchiverResult result); 100 OfflinePageArchiver::ArchiverResult result);
101 101
102 OfflinePageModel* model() { return model_.get(); } 102 OfflinePageModel* model() { return model_.get(); }
103 103
104 SavePageResult last_save_result() const { 104 SavePageResult last_save_result() const {
105 return last_save_result_; 105 return last_save_result_;
106 } 106 }
107 107
108 DeletePageResult last_delete_result() const { 108 DeletePageResult last_delete_result() const {
109 return last_delete_result_; 109 return last_delete_result_;
110 } 110 }
111 111
112 int64_t last_deleted_bookmark_id() const { return last_deleted_bookmark_id_; } 112 int64_t last_deleted_offline_id() const { return last_deleted_offline_id_; }
113 113
114 const base::FilePath& last_archiver_path() { return last_archiver_path_; } 114 const base::FilePath& last_archiver_path() { return last_archiver_path_; }
115 115
116 private: 116 private:
117 scoped_refptr<base::TestMockTimeTaskRunner> task_runner_; 117 scoped_refptr<base::TestMockTimeTaskRunner> task_runner_;
118 base::ThreadTaskRunnerHandle task_runner_handle_; 118 base::ThreadTaskRunnerHandle task_runner_handle_;
119 base::ScopedTempDir temp_dir_; 119 base::ScopedTempDir temp_dir_;
120 120
121 scoped_ptr<OfflinePageModel> model_; 121 scoped_ptr<OfflinePageModel> model_;
122 SavePageResult last_save_result_; 122 SavePageResult last_save_result_;
123 DeletePageResult last_delete_result_; 123 DeletePageResult last_delete_result_;
124 base::FilePath last_archiver_path_; 124 base::FilePath last_archiver_path_;
125 int64_t last_deleted_bookmark_id_; 125 int64_t last_deleted_offline_id_;
126 }; 126 };
127 127
128 OfflinePageModelTest::OfflinePageModelTest() 128 OfflinePageModelTest::OfflinePageModelTest()
129 : task_runner_(new base::TestMockTimeTaskRunner), 129 : task_runner_(new base::TestMockTimeTaskRunner),
130 task_runner_handle_(task_runner_), 130 task_runner_handle_(task_runner_),
131 last_save_result_(SavePageResult::CANCELLED), 131 last_save_result_(SavePageResult::CANCELLED),
132 last_delete_result_(DeletePageResult::CANCELLED), 132 last_delete_result_(DeletePageResult::CANCELLED),
133 last_deleted_bookmark_id_(-1) { 133 last_deleted_offline_id_(-1) {
134 } 134 }
135 135
136 OfflinePageModelTest::~OfflinePageModelTest() { 136 OfflinePageModelTest::~OfflinePageModelTest() {
137 } 137 }
138 138
139 void OfflinePageModelTest::SetUp() { 139 void OfflinePageModelTest::SetUp() {
140 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); 140 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
141 model_ = BuildModel(BuildStore()); 141 model_ = BuildModel(BuildStore());
142 model_->AddObserver(this); 142 model_->AddObserver(this);
143 PumpLoop(); 143 PumpLoop();
144 } 144 }
145 145
146 void OfflinePageModelTest::TearDown() { 146 void OfflinePageModelTest::TearDown() {
147 model_->RemoveObserver(this); 147 model_->RemoveObserver(this);
148 model_.reset(); 148 model_.reset();
149 PumpLoop(); 149 PumpLoop();
150 } 150 }
151 151
152 void OfflinePageModelTest::OfflinePageModelLoaded(OfflinePageModel* model) { 152 void OfflinePageModelTest::OfflinePageModelLoaded(OfflinePageModel* model) {
153 ASSERT_EQ(model_.get(), model); 153 ASSERT_EQ(model_.get(), model);
154 } 154 }
155 155
156 void OfflinePageModelTest::OfflinePageModelChanged(OfflinePageModel* model) { 156 void OfflinePageModelTest::OfflinePageModelChanged(OfflinePageModel* model) {
157 ASSERT_EQ(model_.get(), model); 157 ASSERT_EQ(model_.get(), model);
158 } 158 }
159 159
160 void OfflinePageModelTest::OfflinePageDeleted(int64_t bookmark_id) { 160 void OfflinePageModelTest::OfflinePageDeleted(int64_t offline_id) {
161 last_deleted_bookmark_id_ = bookmark_id; 161 last_deleted_offline_id_ = offline_id;
162 } 162 }
163 163
164 void OfflinePageModelTest::SetLastPathCreatedByArchiver( 164 void OfflinePageModelTest::SetLastPathCreatedByArchiver(
165 const base::FilePath& file_path) { 165 const base::FilePath& file_path) {
166 last_archiver_path_ = file_path; 166 last_archiver_path_ = file_path;
167 } 167 }
168 168
169 void OfflinePageModelTest::OnSavePageDone( 169 void OfflinePageModelTest::OnSavePageDone(
170 OfflinePageModel::SavePageResult result) { 170 OfflinePageModel::SavePageResult result) {
171 last_save_result_ = result; 171 last_save_result_ = result;
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 void OfflinePageModelTest::ResetResults() { 221 void OfflinePageModelTest::ResetResults() {
222 last_save_result_ = SavePageResult::CANCELLED; 222 last_save_result_ = SavePageResult::CANCELLED;
223 last_delete_result_ = DeletePageResult::CANCELLED; 223 last_delete_result_ = DeletePageResult::CANCELLED;
224 last_archiver_path_.clear(); 224 last_archiver_path_.clear();
225 } 225 }
226 226
227 OfflinePageTestStore* OfflinePageModelTest::GetStore() { 227 OfflinePageTestStore* OfflinePageModelTest::GetStore() {
228 return static_cast<OfflinePageTestStore*>(model()->GetStoreForTesting()); 228 return static_cast<OfflinePageTestStore*>(model()->GetStoreForTesting());
229 } 229 }
230 230
231 void OfflinePageModelTest::SavePage(const GURL& url, int64_t bookmark_id) { 231 void OfflinePageModelTest::SavePage(const GURL& url, int64_t offline_id) {
232 SavePageWithArchiverResult( 232 SavePageWithArchiverResult(
233 url, 233 url,
234 bookmark_id, 234 offline_id,
235 OfflinePageArchiver::ArchiverResult::SUCCESSFULLY_CREATED); 235 OfflinePageArchiver::ArchiverResult::SUCCESSFULLY_CREATED);
236 } 236 }
237 237
238 void OfflinePageModelTest::SavePageWithArchiverResult( 238 void OfflinePageModelTest::SavePageWithArchiverResult(
239 const GURL& url, 239 const GURL& url,
240 int64_t bookmark_id, 240 int64_t offline_id,
241 OfflinePageArchiver::ArchiverResult result) { 241 OfflinePageArchiver::ArchiverResult result) {
242 scoped_ptr<OfflinePageTestArchiver> archiver(BuildArchiver(url, result)); 242 scoped_ptr<OfflinePageTestArchiver> archiver(BuildArchiver(url, result));
243 model()->SavePage( 243 model()->SavePage(
244 url, bookmark_id, std::move(archiver), 244 url, offline_id, std::move(archiver),
245 base::Bind(&OfflinePageModelTest::OnSavePageDone, AsWeakPtr())); 245 base::Bind(&OfflinePageModelTest::OnSavePageDone, AsWeakPtr()));
246 PumpLoop(); 246 PumpLoop();
247 } 247 }
248 248
249 TEST_F(OfflinePageModelTest, SavePageSuccessful) { 249 TEST_F(OfflinePageModelTest, SavePageSuccessful) {
250 EXPECT_FALSE(model()->HasOfflinePages()); 250 EXPECT_FALSE(model()->HasOfflinePages());
251 SavePage(kTestUrl, kTestPageBookmarkId1); 251 SavePage(kTestUrl, kTestPageBookmarkId1);
252 EXPECT_TRUE(model()->HasOfflinePages()); 252 EXPECT_TRUE(model()->HasOfflinePages());
253 253
254 OfflinePageTestStore* store = GetStore(); 254 OfflinePageTestStore* store = GetStore();
255 EXPECT_EQ(kTestUrl, store->last_saved_page().url); 255 EXPECT_EQ(kTestUrl, store->last_saved_page().url);
256 EXPECT_EQ(kTestPageBookmarkId1, store->last_saved_page().bookmark_id); 256 EXPECT_EQ(kTestPageBookmarkId1, store->last_saved_page().offline_id);
257 // Save last_archiver_path since it will be referred to later. 257 // Save last_archiver_path since it will be referred to later.
258 base::FilePath archiver_path = last_archiver_path(); 258 base::FilePath archiver_path = last_archiver_path();
259 EXPECT_EQ(archiver_path, store->last_saved_page().file_path); 259 EXPECT_EQ(archiver_path, store->last_saved_page().file_path);
260 EXPECT_EQ(kTestFileSize, store->last_saved_page().file_size); 260 EXPECT_EQ(kTestFileSize, store->last_saved_page().file_size);
261 EXPECT_EQ(SavePageResult::SUCCESS, last_save_result()); 261 EXPECT_EQ(SavePageResult::SUCCESS, last_save_result());
262 ResetResults(); 262 ResetResults();
263 263
264 const std::vector<OfflinePageItem>& offline_pages = model()->GetAllPages(); 264 const std::vector<OfflinePageItem>& offline_pages = model()->GetAllPages();
265 265
266 EXPECT_EQ(1UL, offline_pages.size()); 266 EXPECT_EQ(1UL, offline_pages.size());
267 EXPECT_EQ(kTestUrl, offline_pages[0].url); 267 EXPECT_EQ(kTestUrl, offline_pages[0].url);
268 EXPECT_EQ(kTestPageBookmarkId1, offline_pages[0].bookmark_id); 268 EXPECT_EQ(kTestPageBookmarkId1, offline_pages[0].offline_id);
269 EXPECT_EQ(archiver_path, offline_pages[0].file_path); 269 EXPECT_EQ(archiver_path, offline_pages[0].file_path);
270 EXPECT_EQ(kTestFileSize, offline_pages[0].file_size); 270 EXPECT_EQ(kTestFileSize, offline_pages[0].file_size);
271 EXPECT_EQ(0, offline_pages[0].access_count); 271 EXPECT_EQ(0, offline_pages[0].access_count);
272 EXPECT_EQ(0, offline_pages[0].flags); 272 EXPECT_EQ(0, offline_pages[0].flags);
273 } 273 }
274 274
275 TEST_F(OfflinePageModelTest, SavePageOfflineArchiverCancelled) { 275 TEST_F(OfflinePageModelTest, SavePageOfflineArchiverCancelled) {
276 SavePageWithArchiverResult( 276 SavePageWithArchiverResult(
277 kTestUrl, 277 kTestUrl,
278 kTestPageBookmarkId1, 278 kTestPageBookmarkId1,
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 kTestUrl, kTestPageBookmarkId1, std::move(archiver), 343 kTestUrl, kTestPageBookmarkId1, std::move(archiver),
344 base::Bind(&OfflinePageModelTest::OnSavePageDone, AsWeakPtr())); 344 base::Bind(&OfflinePageModelTest::OnSavePageDone, AsWeakPtr()));
345 EXPECT_TRUE(archiver_ptr->create_archive_called()); 345 EXPECT_TRUE(archiver_ptr->create_archive_called());
346 346
347 // Request to save another page. 347 // Request to save another page.
348 SavePage(kTestUrl2, kTestPageBookmarkId2); 348 SavePage(kTestUrl2, kTestPageBookmarkId2);
349 349
350 OfflinePageTestStore* store = GetStore(); 350 OfflinePageTestStore* store = GetStore();
351 351
352 EXPECT_EQ(kTestUrl2, store->last_saved_page().url); 352 EXPECT_EQ(kTestUrl2, store->last_saved_page().url);
353 EXPECT_EQ(kTestPageBookmarkId2, store->last_saved_page().bookmark_id); 353 EXPECT_EQ(kTestPageBookmarkId2, store->last_saved_page().offline_id);
354 base::FilePath archiver_path2 = last_archiver_path(); 354 base::FilePath archiver_path2 = last_archiver_path();
355 EXPECT_EQ(archiver_path2, store->last_saved_page().file_path); 355 EXPECT_EQ(archiver_path2, store->last_saved_page().file_path);
356 EXPECT_EQ(kTestFileSize, store->last_saved_page().file_size); 356 EXPECT_EQ(kTestFileSize, store->last_saved_page().file_size);
357 EXPECT_EQ(SavePageResult::SUCCESS, last_save_result()); 357 EXPECT_EQ(SavePageResult::SUCCESS, last_save_result());
358 358
359 ResetResults(); 359 ResetResults();
360 360
361 archiver_ptr->CompleteCreateArchive(); 361 archiver_ptr->CompleteCreateArchive();
362 // After this pump loop archiver_ptr is invalid. 362 // After this pump loop archiver_ptr is invalid.
363 PumpLoop(); 363 PumpLoop();
364 364
365 EXPECT_EQ(kTestUrl, store->last_saved_page().url); 365 EXPECT_EQ(kTestUrl, store->last_saved_page().url);
366 EXPECT_EQ(kTestPageBookmarkId1, store->last_saved_page().bookmark_id); 366 EXPECT_EQ(kTestPageBookmarkId1, store->last_saved_page().offline_id);
367 base::FilePath archiver_path = last_archiver_path(); 367 base::FilePath archiver_path = last_archiver_path();
368 EXPECT_EQ(archiver_path, store->last_saved_page().file_path); 368 EXPECT_EQ(archiver_path, store->last_saved_page().file_path);
369 EXPECT_EQ(kTestFileSize, store->last_saved_page().file_size); 369 EXPECT_EQ(kTestFileSize, store->last_saved_page().file_size);
370 EXPECT_EQ(SavePageResult::SUCCESS, last_save_result()); 370 EXPECT_EQ(SavePageResult::SUCCESS, last_save_result());
371 371
372 ResetResults(); 372 ResetResults();
373 373
374 const std::vector<OfflinePageItem>& offline_pages = model()->GetAllPages(); 374 const std::vector<OfflinePageItem>& offline_pages = model()->GetAllPages();
375 375
376 EXPECT_EQ(2UL, offline_pages.size()); 376 EXPECT_EQ(2UL, offline_pages.size());
377 EXPECT_EQ(kTestUrl, offline_pages[0].url); 377 EXPECT_EQ(kTestUrl, offline_pages[0].url);
378 EXPECT_EQ(kTestPageBookmarkId1, offline_pages[0].bookmark_id); 378 EXPECT_EQ(kTestPageBookmarkId1, offline_pages[0].offline_id);
379 EXPECT_EQ(archiver_path, offline_pages[0].file_path); 379 EXPECT_EQ(archiver_path, offline_pages[0].file_path);
380 EXPECT_EQ(kTestFileSize, offline_pages[0].file_size); 380 EXPECT_EQ(kTestFileSize, offline_pages[0].file_size);
381 EXPECT_EQ(0, offline_pages[0].access_count); 381 EXPECT_EQ(0, offline_pages[0].access_count);
382 EXPECT_EQ(0, offline_pages[0].flags); 382 EXPECT_EQ(0, offline_pages[0].flags);
383 EXPECT_EQ(kTestUrl2, offline_pages[1].url); 383 EXPECT_EQ(kTestUrl2, offline_pages[1].url);
384 EXPECT_EQ(kTestPageBookmarkId2, offline_pages[1].bookmark_id); 384 EXPECT_EQ(kTestPageBookmarkId2, offline_pages[1].offline_id);
385 EXPECT_EQ(archiver_path2, offline_pages[1].file_path); 385 EXPECT_EQ(archiver_path2, offline_pages[1].file_path);
386 EXPECT_EQ(kTestFileSize, offline_pages[1].file_size); 386 EXPECT_EQ(kTestFileSize, offline_pages[1].file_size);
387 EXPECT_EQ(0, offline_pages[1].access_count); 387 EXPECT_EQ(0, offline_pages[1].access_count);
388 EXPECT_EQ(0, offline_pages[1].flags); 388 EXPECT_EQ(0, offline_pages[1].flags);
389 } 389 }
390 390
391 TEST_F(OfflinePageModelTest, MarkPageAccessed) { 391 TEST_F(OfflinePageModelTest, MarkPageAccessed) {
392 SavePage(kTestUrl, kTestPageBookmarkId1); 392 SavePage(kTestUrl, kTestPageBookmarkId1);
393 393
394 // This will increase access_count by one. 394 // This will increase access_count by one.
395 model()->MarkPageAccessed(kTestPageBookmarkId1); 395 model()->MarkPageAccessed(kTestPageBookmarkId1);
396 PumpLoop(); 396 PumpLoop();
397 397
398 const std::vector<OfflinePageItem>& offline_pages = model()->GetAllPages(); 398 const std::vector<OfflinePageItem>& offline_pages = model()->GetAllPages();
399 399
400 EXPECT_EQ(1UL, offline_pages.size()); 400 EXPECT_EQ(1UL, offline_pages.size());
401 EXPECT_EQ(kTestUrl, offline_pages[0].url); 401 EXPECT_EQ(kTestUrl, offline_pages[0].url);
402 EXPECT_EQ(kTestPageBookmarkId1, offline_pages[0].bookmark_id); 402 EXPECT_EQ(kTestPageBookmarkId1, offline_pages[0].offline_id);
403 EXPECT_EQ(kTestFileSize, offline_pages[0].file_size); 403 EXPECT_EQ(kTestFileSize, offline_pages[0].file_size);
404 EXPECT_EQ(1, offline_pages[0].access_count); 404 EXPECT_EQ(1, offline_pages[0].access_count);
405 } 405 }
406 406
407 TEST_F(OfflinePageModelTest, MarkPageForDeletion) { 407 TEST_F(OfflinePageModelTest, MarkPageForDeletion) {
408 SavePage(kTestUrl, kTestPageBookmarkId1); 408 SavePage(kTestUrl, kTestPageBookmarkId1);
409 409
410 GURL offline_url = model()->GetAllPages().begin()->GetOfflineURL(); 410 GURL offline_url = model()->GetAllPages().begin()->GetOfflineURL();
411 411
412 // Delete the page with undo tiggerred. 412 // Delete the page with undo tiggerred.
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
487 487
488 ResetResults(); 488 ResetResults();
489 489
490 // Delete one page. 490 // Delete one page.
491 model()->DeletePageByBookmarkId( 491 model()->DeletePageByBookmarkId(
492 kTestPageBookmarkId1, base::Bind(&OfflinePageModelTest::OnDeletePageDone, 492 kTestPageBookmarkId1, base::Bind(&OfflinePageModelTest::OnDeletePageDone,
493 AsWeakPtr())); 493 AsWeakPtr()));
494 494
495 PumpLoop(); 495 PumpLoop();
496 496
497 EXPECT_EQ(last_deleted_bookmark_id(), kTestPageBookmarkId1); 497 EXPECT_EQ(last_deleted_offline_id(), kTestPageBookmarkId1);
498 EXPECT_EQ(DeletePageResult::SUCCESS, last_delete_result()); 498 EXPECT_EQ(DeletePageResult::SUCCESS, last_delete_result());
499 ASSERT_EQ(1u, store->GetAllPages().size()); 499 ASSERT_EQ(1u, store->GetAllPages().size());
500 EXPECT_EQ(kTestUrl2, store->GetAllPages()[0].url); 500 EXPECT_EQ(kTestUrl2, store->GetAllPages()[0].url);
501 501
502 // Delete another page. 502 // Delete another page.
503 model()->DeletePageByBookmarkId( 503 model()->DeletePageByBookmarkId(
504 kTestPageBookmarkId2, base::Bind(&OfflinePageModelTest::OnDeletePageDone, 504 kTestPageBookmarkId2, base::Bind(&OfflinePageModelTest::OnDeletePageDone,
505 AsWeakPtr())); 505 AsWeakPtr()));
506 506
507 ResetResults(); 507 ResetResults();
508 508
509 PumpLoop(); 509 PumpLoop();
510 510
511 EXPECT_EQ(last_deleted_bookmark_id(), kTestPageBookmarkId2); 511 EXPECT_EQ(last_deleted_offline_id(), kTestPageBookmarkId2);
512 EXPECT_EQ(DeletePageResult::SUCCESS, last_delete_result()); 512 EXPECT_EQ(DeletePageResult::SUCCESS, last_delete_result());
513 EXPECT_EQ(0u, store->GetAllPages().size()); 513 EXPECT_EQ(0u, store->GetAllPages().size());
514 } 514 }
515 515
516 TEST_F(OfflinePageModelTest, DeletePageNotFound) { 516 TEST_F(OfflinePageModelTest, DeletePageNotFound) {
517 model()->DeletePageByBookmarkId( 517 model()->DeletePageByBookmarkId(
518 kTestPageBookmarkId1, base::Bind(&OfflinePageModelTest::OnDeletePageDone, 518 kTestPageBookmarkId1, base::Bind(&OfflinePageModelTest::OnDeletePageDone,
519 AsWeakPtr())); 519 AsWeakPtr()));
520 EXPECT_EQ(DeletePageResult::NOT_FOUND, last_delete_result()); 520 EXPECT_EQ(DeletePageResult::NOT_FOUND, last_delete_result());
521 } 521 }
(...skipping 20 matching lines...) Expand all
542 542
543 ResetResults(); 543 ResetResults();
544 544
545 const OfflinePageItem* page = 545 const OfflinePageItem* page =
546 model()->GetPageByBookmarkId(kTestPageBookmarkId1); 546 model()->GetPageByBookmarkId(kTestPageBookmarkId1);
547 // Delete the offline copy of the page and check the metadata. 547 // Delete the offline copy of the page and check the metadata.
548 base::DeleteFile(page->file_path, false); 548 base::DeleteFile(page->file_path, false);
549 model()->CheckForExternalFileDeletion(); 549 model()->CheckForExternalFileDeletion();
550 PumpLoop(); 550 PumpLoop();
551 551
552 EXPECT_EQ(last_deleted_bookmark_id(), kTestPageBookmarkId1); 552 EXPECT_EQ(last_deleted_offline_id(), kTestPageBookmarkId1);
553 EXPECT_EQ(0UL, model()->GetAllPages().size()); 553 EXPECT_EQ(0UL, model()->GetAllPages().size());
554 } 554 }
555 555
556 TEST_F(OfflinePageModelTest, DetectThatOfflineCopyIsMissingAfterLoad) { 556 TEST_F(OfflinePageModelTest, DetectThatOfflineCopyIsMissingAfterLoad) {
557 // Save a page. 557 // Save a page.
558 SavePage(kTestUrl, kTestPageBookmarkId1); 558 SavePage(kTestUrl, kTestPageBookmarkId1);
559 559
560 ResetResults(); 560 ResetResults();
561 561
562 const OfflinePageItem* page = 562 const OfflinePageItem* page =
563 model()->GetPageByBookmarkId(kTestPageBookmarkId1); 563 model()->GetPageByBookmarkId(kTestPageBookmarkId1);
564 // Delete the offline copy of the page and check the metadata. 564 // Delete the offline copy of the page and check the metadata.
565 base::DeleteFile(page->file_path, false); 565 base::DeleteFile(page->file_path, false);
566 // Reseting the model should trigger the metadata consistency check as well. 566 // Reseting the model should trigger the metadata consistency check as well.
567 ResetModel(); 567 ResetModel();
568 PumpLoop(); 568 PumpLoop();
569 569
570 EXPECT_EQ(last_deleted_bookmark_id(), kTestPageBookmarkId1); 570 EXPECT_EQ(last_deleted_offline_id(), kTestPageBookmarkId1);
571 EXPECT_EQ(0UL, model()->GetAllPages().size()); 571 EXPECT_EQ(0UL, model()->GetAllPages().size());
572 } 572 }
573 573
574 TEST_F(OfflinePageModelTest, DeleteMultiplePages) { 574 TEST_F(OfflinePageModelTest, DeleteMultiplePages) {
575 OfflinePageTestStore* store = GetStore(); 575 OfflinePageTestStore* store = GetStore();
576 576
577 // Save 3 pages. 577 // Save 3 pages.
578 scoped_ptr<OfflinePageTestArchiver> archiver(BuildArchiver( 578 scoped_ptr<OfflinePageTestArchiver> archiver(BuildArchiver(
579 kTestUrl, OfflinePageArchiver::ArchiverResult::SUCCESSFULLY_CREATED)); 579 kTestUrl, OfflinePageArchiver::ArchiverResult::SUCCESSFULLY_CREATED));
580 model()->SavePage( 580 model()->SavePage(
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
614 } 614 }
615 615
616 TEST_F(OfflinePageModelTest, GetPageByBookmarkId) { 616 TEST_F(OfflinePageModelTest, GetPageByBookmarkId) {
617 SavePage(kTestUrl, kTestPageBookmarkId1); 617 SavePage(kTestUrl, kTestPageBookmarkId1);
618 SavePage(kTestUrl2, kTestPageBookmarkId2); 618 SavePage(kTestUrl2, kTestPageBookmarkId2);
619 619
620 const OfflinePageItem* page = 620 const OfflinePageItem* page =
621 model()->GetPageByBookmarkId(kTestPageBookmarkId1); 621 model()->GetPageByBookmarkId(kTestPageBookmarkId1);
622 ASSERT_TRUE(page); 622 ASSERT_TRUE(page);
623 EXPECT_EQ(kTestUrl, page->url); 623 EXPECT_EQ(kTestUrl, page->url);
624 EXPECT_EQ(kTestPageBookmarkId1, page->bookmark_id); 624 EXPECT_EQ(kTestPageBookmarkId1, page->offline_id);
625 EXPECT_EQ(kTestFileSize, page->file_size); 625 EXPECT_EQ(kTestFileSize, page->file_size);
626 626
627 page = model()->GetPageByBookmarkId(kTestPageBookmarkId2); 627 page = model()->GetPageByBookmarkId(kTestPageBookmarkId2);
628 ASSERT_TRUE(page); 628 ASSERT_TRUE(page);
629 EXPECT_EQ(kTestUrl2, page->url); 629 EXPECT_EQ(kTestUrl2, page->url);
630 EXPECT_EQ(kTestPageBookmarkId2, page->bookmark_id); 630 EXPECT_EQ(kTestPageBookmarkId2, page->offline_id);
631 EXPECT_EQ(kTestFileSize, page->file_size); 631 EXPECT_EQ(kTestFileSize, page->file_size);
632 632
633 page = model()->GetPageByBookmarkId(-42); 633 page = model()->GetPageByBookmarkId(-42);
634 EXPECT_FALSE(page); 634 EXPECT_FALSE(page);
635 } 635 }
636 636
637 TEST_F(OfflinePageModelTest, GetPageByOfflineURL) { 637 TEST_F(OfflinePageModelTest, GetPageByOfflineURL) {
638 SavePage(kTestUrl, kTestPageBookmarkId1); 638 SavePage(kTestUrl, kTestPageBookmarkId1);
639 639
640 OfflinePageTestStore* store = GetStore(); 640 OfflinePageTestStore* store = GetStore();
641 GURL offline_url = store->last_saved_page().GetOfflineURL(); 641 GURL offline_url = store->last_saved_page().GetOfflineURL();
642 642
643 SavePage(kTestUrl2, kTestPageBookmarkId2); 643 SavePage(kTestUrl2, kTestPageBookmarkId2);
644 644
645 GURL offline_url2 = store->last_saved_page().GetOfflineURL(); 645 GURL offline_url2 = store->last_saved_page().GetOfflineURL();
646 646
647 const OfflinePageItem* page = model()->GetPageByOfflineURL(offline_url2); 647 const OfflinePageItem* page = model()->GetPageByOfflineURL(offline_url2);
648 EXPECT_TRUE(page); 648 EXPECT_TRUE(page);
649 EXPECT_EQ(kTestUrl2, page->url); 649 EXPECT_EQ(kTestUrl2, page->url);
650 EXPECT_EQ(kTestPageBookmarkId2, page->bookmark_id); 650 EXPECT_EQ(kTestPageBookmarkId2, page->offline_id);
651 651
652 page = model()->GetPageByOfflineURL(offline_url); 652 page = model()->GetPageByOfflineURL(offline_url);
653 EXPECT_TRUE(page); 653 EXPECT_TRUE(page);
654 EXPECT_EQ(kTestUrl, page->url); 654 EXPECT_EQ(kTestUrl, page->url);
655 EXPECT_EQ(kTestPageBookmarkId1, page->bookmark_id); 655 EXPECT_EQ(kTestPageBookmarkId1, page->offline_id);
656 656
657 page = model()->GetPageByOfflineURL(GURL("http://foo")); 657 page = model()->GetPageByOfflineURL(GURL("http://foo"));
658 EXPECT_FALSE(page); 658 EXPECT_FALSE(page);
659 } 659 }
660 660
661 TEST_F(OfflinePageModelTest, GetPageByOnlineURL) { 661 TEST_F(OfflinePageModelTest, GetPageByOnlineURL) {
662 SavePage(kTestUrl, kTestPageBookmarkId1); 662 SavePage(kTestUrl, kTestPageBookmarkId1);
663 SavePage(kTestUrl2, kTestPageBookmarkId2); 663 SavePage(kTestUrl2, kTestPageBookmarkId2);
664 664
665 const OfflinePageItem* page = model()->GetPageByOnlineURL(kTestUrl2); 665 const OfflinePageItem* page = model()->GetPageByOnlineURL(kTestUrl2);
666 EXPECT_TRUE(page); 666 EXPECT_TRUE(page);
667 EXPECT_EQ(kTestUrl2, page->url); 667 EXPECT_EQ(kTestUrl2, page->url);
668 EXPECT_EQ(kTestPageBookmarkId2, page->bookmark_id); 668 EXPECT_EQ(kTestPageBookmarkId2, page->offline_id);
669 669
670 page = model()->GetPageByOnlineURL(kTestUrl); 670 page = model()->GetPageByOnlineURL(kTestUrl);
671 EXPECT_TRUE(page); 671 EXPECT_TRUE(page);
672 EXPECT_EQ(kTestUrl, page->url); 672 EXPECT_EQ(kTestUrl, page->url);
673 EXPECT_EQ(kTestPageBookmarkId1, page->bookmark_id); 673 EXPECT_EQ(kTestPageBookmarkId1, page->offline_id);
674 674
675 page = model()->GetPageByOnlineURL(GURL("http://foo")); 675 page = model()->GetPageByOnlineURL(GURL("http://foo"));
676 EXPECT_FALSE(page); 676 EXPECT_FALSE(page);
677 } 677 }
678 678
679 // Test that model returns pages that are older than 30 days as candidates for 679 // Test that model returns pages that are older than 30 days as candidates for
680 // clean up, hence the numbers in time delta. 680 // clean up, hence the numbers in time delta.
681 TEST_F(OfflinePageModelTest, GetPagesToCleanUp) { 681 TEST_F(OfflinePageModelTest, GetPagesToCleanUp) {
682 base::Time now = base::Time::Now(); 682 base::Time now = base::Time::Now();
683 683
684 SavePage(kTestUrl, kTestPageBookmarkId1); 684 SavePage(kTestUrl, kTestPageBookmarkId1);
685 GetStore()->UpdateLastAccessTime(kTestPageBookmarkId1, 685 GetStore()->UpdateLastAccessTime(kTestPageBookmarkId1,
686 now - base::TimeDelta::FromDays(40)); 686 now - base::TimeDelta::FromDays(40));
687 687
688 SavePage(kTestUrl2, kTestPageBookmarkId2); 688 SavePage(kTestUrl2, kTestPageBookmarkId2);
689 GetStore()->UpdateLastAccessTime(kTestPageBookmarkId2, 689 GetStore()->UpdateLastAccessTime(kTestPageBookmarkId2,
690 now - base::TimeDelta::FromDays(31)); 690 now - base::TimeDelta::FromDays(31));
691 691
692 SavePage(kTestUrl3, kTestPageBookmarkId3); 692 SavePage(kTestUrl3, kTestPageBookmarkId3);
693 GetStore()->UpdateLastAccessTime(kTestPageBookmarkId3, 693 GetStore()->UpdateLastAccessTime(kTestPageBookmarkId3,
694 now - base::TimeDelta::FromDays(29)); 694 now - base::TimeDelta::FromDays(29));
695 695
696 ResetModel(); 696 ResetModel();
697 697
698 // Only page_1 and page_2 are expected to be picked up by the model as page_3 698 // Only page_1 and page_2 are expected to be picked up by the model as page_3
699 // has not been in the store long enough. 699 // has not been in the store long enough.
700 std::vector<OfflinePageItem> pages_to_clean_up = model()->GetPagesToCleanUp(); 700 std::vector<OfflinePageItem> pages_to_clean_up = model()->GetPagesToCleanUp();
701 EXPECT_EQ(2UL, pages_to_clean_up.size()); 701 EXPECT_EQ(2UL, pages_to_clean_up.size());
702 EXPECT_EQ(kTestUrl, pages_to_clean_up[0].url); 702 EXPECT_EQ(kTestUrl, pages_to_clean_up[0].url);
703 EXPECT_EQ(kTestPageBookmarkId1, pages_to_clean_up[0].bookmark_id); 703 EXPECT_EQ(kTestPageBookmarkId1, pages_to_clean_up[0].offline_id);
704 EXPECT_EQ(kTestUrl2, pages_to_clean_up[1].url); 704 EXPECT_EQ(kTestUrl2, pages_to_clean_up[1].url);
705 EXPECT_EQ(kTestPageBookmarkId2, pages_to_clean_up[1].bookmark_id); 705 EXPECT_EQ(kTestPageBookmarkId2, pages_to_clean_up[1].offline_id);
706 } 706 }
707 707
708 TEST_F(OfflinePageModelTest, CanSavePage) { 708 TEST_F(OfflinePageModelTest, CanSavePage) {
709 EXPECT_TRUE(OfflinePageModel::CanSavePage(GURL("http://foo"))); 709 EXPECT_TRUE(OfflinePageModel::CanSavePage(GURL("http://foo")));
710 EXPECT_TRUE(OfflinePageModel::CanSavePage(GURL("https://foo"))); 710 EXPECT_TRUE(OfflinePageModel::CanSavePage(GURL("https://foo")));
711 EXPECT_FALSE(OfflinePageModel::CanSavePage(GURL("file:///foo"))); 711 EXPECT_FALSE(OfflinePageModel::CanSavePage(GURL("file:///foo")));
712 EXPECT_FALSE(OfflinePageModel::CanSavePage(GURL("data:image/png;base64,ab"))); 712 EXPECT_FALSE(OfflinePageModel::CanSavePage(GURL("data:image/png;base64,ab")));
713 EXPECT_FALSE(OfflinePageModel::CanSavePage(GURL("chrome://version"))); 713 EXPECT_FALSE(OfflinePageModel::CanSavePage(GURL("chrome://version")));
714 EXPECT_FALSE(OfflinePageModel::CanSavePage(GURL("chrome-native://newtab/"))); 714 EXPECT_FALSE(OfflinePageModel::CanSavePage(GURL("chrome-native://newtab/")));
715 } 715 }
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
911 PumpLoop(); 911 PumpLoop();
912 EXPECT_EQ(0UL, model()->GetAllPages().size()); 912 EXPECT_EQ(0UL, model()->GetAllPages().size());
913 913
914 // The offline copy should be restored upon the bookmark restore. 914 // The offline copy should be restored upon the bookmark restore.
915 UndoBookmarkRemoval(); 915 UndoBookmarkRemoval();
916 PumpLoop(); 916 PumpLoop();
917 EXPECT_EQ(1UL, model()->GetAllPages().size()); 917 EXPECT_EQ(1UL, model()->GetAllPages().size());
918 } 918 }
919 919
920 } // namespace offline_pages 920 } // namespace offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698