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

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: move id generation to C++, add DB migration 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 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
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 }
135 134
136 OfflinePageModelTest::~OfflinePageModelTest() { 135 OfflinePageModelTest::~OfflinePageModelTest() {
137 } 136 }
138 137
139 void OfflinePageModelTest::SetUp() { 138 void OfflinePageModelTest::SetUp() {
140 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); 139 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
141 model_ = BuildModel(BuildStore()); 140 model_ = BuildModel(BuildStore());
142 model_->AddObserver(this); 141 model_->AddObserver(this);
143 PumpLoop(); 142 PumpLoop();
144 } 143 }
145 144
146 void OfflinePageModelTest::TearDown() { 145 void OfflinePageModelTest::TearDown() {
147 model_->RemoveObserver(this); 146 model_->RemoveObserver(this);
148 model_.reset(); 147 model_.reset();
149 PumpLoop(); 148 PumpLoop();
150 } 149 }
151 150
152 void OfflinePageModelTest::OfflinePageModelLoaded(OfflinePageModel* model) { 151 void OfflinePageModelTest::OfflinePageModelLoaded(OfflinePageModel* model) {
153 ASSERT_EQ(model_.get(), model); 152 ASSERT_EQ(model_.get(), model);
154 } 153 }
155 154
156 void OfflinePageModelTest::OfflinePageModelChanged(OfflinePageModel* model) { 155 void OfflinePageModelTest::OfflinePageModelChanged(OfflinePageModel* model) {
157 ASSERT_EQ(model_.get(), model); 156 ASSERT_EQ(model_.get(), model);
158 } 157 }
159 158
160 void OfflinePageModelTest::OfflinePageDeleted(int64_t bookmark_id) { 159 void OfflinePageModelTest::OfflinePageDeleted(int64_t offline_id) {
161 last_deleted_bookmark_id_ = bookmark_id; 160 last_deleted_offline_id_ = offline_id;
162 } 161 }
163 162
164 void OfflinePageModelTest::SetLastPathCreatedByArchiver( 163 void OfflinePageModelTest::SetLastPathCreatedByArchiver(
165 const base::FilePath& file_path) { 164 const base::FilePath& file_path) {
166 last_archiver_path_ = file_path; 165 last_archiver_path_ = file_path;
167 } 166 }
168 167
169 void OfflinePageModelTest::OnSavePageDone( 168 void OfflinePageModelTest::OnSavePageDone(
170 OfflinePageModel::SavePageResult result) { 169 OfflinePageModel::SavePageResult result) {
171 last_save_result_ = result; 170 last_save_result_ = result;
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 void OfflinePageModelTest::ResetResults() { 220 void OfflinePageModelTest::ResetResults() {
222 last_save_result_ = SavePageResult::CANCELLED; 221 last_save_result_ = SavePageResult::CANCELLED;
223 last_delete_result_ = DeletePageResult::CANCELLED; 222 last_delete_result_ = DeletePageResult::CANCELLED;
224 last_archiver_path_.clear(); 223 last_archiver_path_.clear();
225 } 224 }
226 225
227 OfflinePageTestStore* OfflinePageModelTest::GetStore() { 226 OfflinePageTestStore* OfflinePageModelTest::GetStore() {
228 return static_cast<OfflinePageTestStore*>(model()->GetStoreForTesting()); 227 return static_cast<OfflinePageTestStore*>(model()->GetStoreForTesting());
229 } 228 }
230 229
231 void OfflinePageModelTest::SavePage(const GURL& url, int64_t bookmark_id) { 230 void OfflinePageModelTest::SavePage(const GURL& url, int64_t offline_id) {
232 SavePageWithArchiverResult( 231 SavePageWithArchiverResult(
233 url, 232 url, offline_id,
234 bookmark_id,
235 OfflinePageArchiver::ArchiverResult::SUCCESSFULLY_CREATED); 233 OfflinePageArchiver::ArchiverResult::SUCCESSFULLY_CREATED);
236 } 234 }
237 235
238 void OfflinePageModelTest::SavePageWithArchiverResult( 236 void OfflinePageModelTest::SavePageWithArchiverResult(
239 const GURL& url, 237 const GURL& url,
240 int64_t bookmark_id, 238 int64_t offline_id,
241 OfflinePageArchiver::ArchiverResult result) { 239 OfflinePageArchiver::ArchiverResult result) {
242 scoped_ptr<OfflinePageTestArchiver> archiver(BuildArchiver(url, result)); 240 scoped_ptr<OfflinePageTestArchiver> archiver(BuildArchiver(url, result));
243 model()->SavePage( 241 model()->SavePage(
244 url, bookmark_id, std::move(archiver), 242 url, offline_id, std::move(archiver),
Dmitry Titov 2016/02/25 03:31:52 I'm not sure how it compiles... SavePage now takes
bburns 2016/02/26 00:14:35 Done (I hadn't compiled tests yet until we got clo
245 base::Bind(&OfflinePageModelTest::OnSavePageDone, AsWeakPtr())); 243 base::Bind(&OfflinePageModelTest::OnSavePageDone, AsWeakPtr()));
246 PumpLoop(); 244 PumpLoop();
247 } 245 }
248 246
249 TEST_F(OfflinePageModelTest, SavePageSuccessful) { 247 TEST_F(OfflinePageModelTest, SavePageSuccessful) {
250 EXPECT_FALSE(model()->HasOfflinePages()); 248 EXPECT_FALSE(model()->HasOfflinePages());
251 SavePage(kTestUrl, kTestPageBookmarkId1); 249 SavePage(kTestUrl, kTestPageBookmarkId1);
252 EXPECT_TRUE(model()->HasOfflinePages()); 250 EXPECT_TRUE(model()->HasOfflinePages());
253 251
254 OfflinePageTestStore* store = GetStore(); 252 OfflinePageTestStore* store = GetStore();
255 EXPECT_EQ(kTestUrl, store->last_saved_page().url); 253 EXPECT_EQ(kTestUrl, store->last_saved_page().url);
256 EXPECT_EQ(kTestPageBookmarkId1, store->last_saved_page().bookmark_id); 254 EXPECT_EQ(kTestPageBookmarkId1, store->last_saved_page().offline_id);
257 // Save last_archiver_path since it will be referred to later. 255 // Save last_archiver_path since it will be referred to later.
258 base::FilePath archiver_path = last_archiver_path(); 256 base::FilePath archiver_path = last_archiver_path();
259 EXPECT_EQ(archiver_path, store->last_saved_page().file_path); 257 EXPECT_EQ(archiver_path, store->last_saved_page().file_path);
260 EXPECT_EQ(kTestFileSize, store->last_saved_page().file_size); 258 EXPECT_EQ(kTestFileSize, store->last_saved_page().file_size);
261 EXPECT_EQ(SavePageResult::SUCCESS, last_save_result()); 259 EXPECT_EQ(SavePageResult::SUCCESS, last_save_result());
262 ResetResults(); 260 ResetResults();
263 261
264 const std::vector<OfflinePageItem>& offline_pages = model()->GetAllPages(); 262 const std::vector<OfflinePageItem>& offline_pages = model()->GetAllPages();
265 263
266 EXPECT_EQ(1UL, offline_pages.size()); 264 EXPECT_EQ(1UL, offline_pages.size());
267 EXPECT_EQ(kTestUrl, offline_pages[0].url); 265 EXPECT_EQ(kTestUrl, offline_pages[0].url);
268 EXPECT_EQ(kTestPageBookmarkId1, offline_pages[0].bookmark_id); 266 EXPECT_EQ(kTestPageBookmarkId1, offline_pages[0].offline_id);
269 EXPECT_EQ(archiver_path, offline_pages[0].file_path); 267 EXPECT_EQ(archiver_path, offline_pages[0].file_path);
270 EXPECT_EQ(kTestFileSize, offline_pages[0].file_size); 268 EXPECT_EQ(kTestFileSize, offline_pages[0].file_size);
271 EXPECT_EQ(0, offline_pages[0].access_count); 269 EXPECT_EQ(0, offline_pages[0].access_count);
272 EXPECT_EQ(0, offline_pages[0].flags); 270 EXPECT_EQ(0, offline_pages[0].flags);
273 } 271 }
274 272
275 TEST_F(OfflinePageModelTest, SavePageOfflineArchiverCancelled) { 273 TEST_F(OfflinePageModelTest, SavePageOfflineArchiverCancelled) {
276 SavePageWithArchiverResult( 274 SavePageWithArchiverResult(
277 kTestUrl, 275 kTestUrl,
278 kTestPageBookmarkId1, 276 kTestPageBookmarkId1,
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 kTestUrl, kTestPageBookmarkId1, std::move(archiver), 341 kTestUrl, kTestPageBookmarkId1, std::move(archiver),
344 base::Bind(&OfflinePageModelTest::OnSavePageDone, AsWeakPtr())); 342 base::Bind(&OfflinePageModelTest::OnSavePageDone, AsWeakPtr()));
345 EXPECT_TRUE(archiver_ptr->create_archive_called()); 343 EXPECT_TRUE(archiver_ptr->create_archive_called());
346 344
347 // Request to save another page. 345 // Request to save another page.
348 SavePage(kTestUrl2, kTestPageBookmarkId2); 346 SavePage(kTestUrl2, kTestPageBookmarkId2);
349 347
350 OfflinePageTestStore* store = GetStore(); 348 OfflinePageTestStore* store = GetStore();
351 349
352 EXPECT_EQ(kTestUrl2, store->last_saved_page().url); 350 EXPECT_EQ(kTestUrl2, store->last_saved_page().url);
353 EXPECT_EQ(kTestPageBookmarkId2, store->last_saved_page().bookmark_id); 351 EXPECT_EQ(kTestPageBookmarkId2, store->last_saved_page().offline_id);
354 base::FilePath archiver_path2 = last_archiver_path(); 352 base::FilePath archiver_path2 = last_archiver_path();
355 EXPECT_EQ(archiver_path2, store->last_saved_page().file_path); 353 EXPECT_EQ(archiver_path2, store->last_saved_page().file_path);
356 EXPECT_EQ(kTestFileSize, store->last_saved_page().file_size); 354 EXPECT_EQ(kTestFileSize, store->last_saved_page().file_size);
357 EXPECT_EQ(SavePageResult::SUCCESS, last_save_result()); 355 EXPECT_EQ(SavePageResult::SUCCESS, last_save_result());
358 356
359 ResetResults(); 357 ResetResults();
360 358
361 archiver_ptr->CompleteCreateArchive(); 359 archiver_ptr->CompleteCreateArchive();
362 // After this pump loop archiver_ptr is invalid. 360 // After this pump loop archiver_ptr is invalid.
363 PumpLoop(); 361 PumpLoop();
364 362
365 EXPECT_EQ(kTestUrl, store->last_saved_page().url); 363 EXPECT_EQ(kTestUrl, store->last_saved_page().url);
366 EXPECT_EQ(kTestPageBookmarkId1, store->last_saved_page().bookmark_id); 364 EXPECT_EQ(kTestPageBookmarkId1, store->last_saved_page().offline_id);
367 base::FilePath archiver_path = last_archiver_path(); 365 base::FilePath archiver_path = last_archiver_path();
368 EXPECT_EQ(archiver_path, store->last_saved_page().file_path); 366 EXPECT_EQ(archiver_path, store->last_saved_page().file_path);
369 EXPECT_EQ(kTestFileSize, store->last_saved_page().file_size); 367 EXPECT_EQ(kTestFileSize, store->last_saved_page().file_size);
370 EXPECT_EQ(SavePageResult::SUCCESS, last_save_result()); 368 EXPECT_EQ(SavePageResult::SUCCESS, last_save_result());
371 369
372 ResetResults(); 370 ResetResults();
373 371
374 const std::vector<OfflinePageItem>& offline_pages = model()->GetAllPages(); 372 const std::vector<OfflinePageItem>& offline_pages = model()->GetAllPages();
375 373
376 EXPECT_EQ(2UL, offline_pages.size()); 374 EXPECT_EQ(2UL, offline_pages.size());
377 EXPECT_EQ(kTestUrl, offline_pages[0].url); 375 EXPECT_EQ(kTestUrl, offline_pages[0].url);
378 EXPECT_EQ(kTestPageBookmarkId1, offline_pages[0].bookmark_id); 376 EXPECT_EQ(kTestPageBookmarkId1, offline_pages[0].offline_id);
379 EXPECT_EQ(archiver_path, offline_pages[0].file_path); 377 EXPECT_EQ(archiver_path, offline_pages[0].file_path);
380 EXPECT_EQ(kTestFileSize, offline_pages[0].file_size); 378 EXPECT_EQ(kTestFileSize, offline_pages[0].file_size);
381 EXPECT_EQ(0, offline_pages[0].access_count); 379 EXPECT_EQ(0, offline_pages[0].access_count);
382 EXPECT_EQ(0, offline_pages[0].flags); 380 EXPECT_EQ(0, offline_pages[0].flags);
383 EXPECT_EQ(kTestUrl2, offline_pages[1].url); 381 EXPECT_EQ(kTestUrl2, offline_pages[1].url);
384 EXPECT_EQ(kTestPageBookmarkId2, offline_pages[1].bookmark_id); 382 EXPECT_EQ(kTestPageBookmarkId2, offline_pages[1].offline_id);
385 EXPECT_EQ(archiver_path2, offline_pages[1].file_path); 383 EXPECT_EQ(archiver_path2, offline_pages[1].file_path);
386 EXPECT_EQ(kTestFileSize, offline_pages[1].file_size); 384 EXPECT_EQ(kTestFileSize, offline_pages[1].file_size);
387 EXPECT_EQ(0, offline_pages[1].access_count); 385 EXPECT_EQ(0, offline_pages[1].access_count);
388 EXPECT_EQ(0, offline_pages[1].flags); 386 EXPECT_EQ(0, offline_pages[1].flags);
389 } 387 }
390 388
391 TEST_F(OfflinePageModelTest, MarkPageAccessed) { 389 TEST_F(OfflinePageModelTest, MarkPageAccessed) {
392 SavePage(kTestUrl, kTestPageBookmarkId1); 390 SavePage(kTestUrl, kTestPageBookmarkId1);
393 391
394 // This will increase access_count by one. 392 // This will increase access_count by one.
395 model()->MarkPageAccessed(kTestPageBookmarkId1); 393 model()->MarkPageAccessed(kTestPageBookmarkId1);
396 PumpLoop(); 394 PumpLoop();
397 395
398 const std::vector<OfflinePageItem>& offline_pages = model()->GetAllPages(); 396 const std::vector<OfflinePageItem>& offline_pages = model()->GetAllPages();
399 397
400 EXPECT_EQ(1UL, offline_pages.size()); 398 EXPECT_EQ(1UL, offline_pages.size());
401 EXPECT_EQ(kTestUrl, offline_pages[0].url); 399 EXPECT_EQ(kTestUrl, offline_pages[0].url);
402 EXPECT_EQ(kTestPageBookmarkId1, offline_pages[0].bookmark_id); 400 EXPECT_EQ(kTestPageBookmarkId1, offline_pages[0].offline_id);
403 EXPECT_EQ(kTestFileSize, offline_pages[0].file_size); 401 EXPECT_EQ(kTestFileSize, offline_pages[0].file_size);
404 EXPECT_EQ(1, offline_pages[0].access_count); 402 EXPECT_EQ(1, offline_pages[0].access_count);
405 } 403 }
406 404
407 TEST_F(OfflinePageModelTest, MarkPageForDeletion) { 405 TEST_F(OfflinePageModelTest, MarkPageForDeletion) {
408 SavePage(kTestUrl, kTestPageBookmarkId1); 406 SavePage(kTestUrl, kTestPageBookmarkId1);
409 407
410 GURL offline_url = model()->GetAllPages().begin()->GetOfflineURL(); 408 GURL offline_url = model()->GetAllPages().begin()->GetOfflineURL();
411 409
412 // Delete the page with undo tiggerred. 410 // Delete the page with undo tiggerred.
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
487 485
488 ResetResults(); 486 ResetResults();
489 487
490 // Delete one page. 488 // Delete one page.
491 model()->DeletePageByBookmarkId( 489 model()->DeletePageByBookmarkId(
492 kTestPageBookmarkId1, base::Bind(&OfflinePageModelTest::OnDeletePageDone, 490 kTestPageBookmarkId1, base::Bind(&OfflinePageModelTest::OnDeletePageDone,
493 AsWeakPtr())); 491 AsWeakPtr()));
494 492
495 PumpLoop(); 493 PumpLoop();
496 494
497 EXPECT_EQ(last_deleted_bookmark_id(), kTestPageBookmarkId1); 495 EXPECT_EQ(last_deleted_offline_id(), kTestPageBookmarkId1);
498 EXPECT_EQ(DeletePageResult::SUCCESS, last_delete_result()); 496 EXPECT_EQ(DeletePageResult::SUCCESS, last_delete_result());
499 ASSERT_EQ(1u, store->GetAllPages().size()); 497 ASSERT_EQ(1u, store->GetAllPages().size());
500 EXPECT_EQ(kTestUrl2, store->GetAllPages()[0].url); 498 EXPECT_EQ(kTestUrl2, store->GetAllPages()[0].url);
501 499
502 // Delete another page. 500 // Delete another page.
503 model()->DeletePageByBookmarkId( 501 model()->DeletePageByBookmarkId(
504 kTestPageBookmarkId2, base::Bind(&OfflinePageModelTest::OnDeletePageDone, 502 kTestPageBookmarkId2, base::Bind(&OfflinePageModelTest::OnDeletePageDone,
505 AsWeakPtr())); 503 AsWeakPtr()));
506 504
507 ResetResults(); 505 ResetResults();
508 506
509 PumpLoop(); 507 PumpLoop();
510 508
511 EXPECT_EQ(last_deleted_bookmark_id(), kTestPageBookmarkId2); 509 EXPECT_EQ(last_deleted_offline_id(), kTestPageBookmarkId2);
512 EXPECT_EQ(DeletePageResult::SUCCESS, last_delete_result()); 510 EXPECT_EQ(DeletePageResult::SUCCESS, last_delete_result());
513 EXPECT_EQ(0u, store->GetAllPages().size()); 511 EXPECT_EQ(0u, store->GetAllPages().size());
514 } 512 }
515 513
516 TEST_F(OfflinePageModelTest, DeletePageNotFound) { 514 TEST_F(OfflinePageModelTest, DeletePageNotFound) {
517 model()->DeletePageByBookmarkId( 515 model()->DeletePageByBookmarkId(
518 kTestPageBookmarkId1, base::Bind(&OfflinePageModelTest::OnDeletePageDone, 516 kTestPageBookmarkId1, base::Bind(&OfflinePageModelTest::OnDeletePageDone,
519 AsWeakPtr())); 517 AsWeakPtr()));
520 EXPECT_EQ(DeletePageResult::NOT_FOUND, last_delete_result()); 518 EXPECT_EQ(DeletePageResult::NOT_FOUND, last_delete_result());
521 } 519 }
(...skipping 20 matching lines...) Expand all
542 540
543 ResetResults(); 541 ResetResults();
544 542
545 const OfflinePageItem* page = 543 const OfflinePageItem* page =
546 model()->GetPageByBookmarkId(kTestPageBookmarkId1); 544 model()->GetPageByBookmarkId(kTestPageBookmarkId1);
547 // Delete the offline copy of the page and check the metadata. 545 // Delete the offline copy of the page and check the metadata.
548 base::DeleteFile(page->file_path, false); 546 base::DeleteFile(page->file_path, false);
549 model()->CheckForExternalFileDeletion(); 547 model()->CheckForExternalFileDeletion();
550 PumpLoop(); 548 PumpLoop();
551 549
552 EXPECT_EQ(last_deleted_bookmark_id(), kTestPageBookmarkId1); 550 EXPECT_EQ(last_deleted_offline_id(), kTestPageBookmarkId1);
553 EXPECT_EQ(0UL, model()->GetAllPages().size()); 551 EXPECT_EQ(0UL, model()->GetAllPages().size());
554 } 552 }
555 553
556 TEST_F(OfflinePageModelTest, DetectThatOfflineCopyIsMissingAfterLoad) { 554 TEST_F(OfflinePageModelTest, DetectThatOfflineCopyIsMissingAfterLoad) {
557 // Save a page. 555 // Save a page.
558 SavePage(kTestUrl, kTestPageBookmarkId1); 556 SavePage(kTestUrl, kTestPageBookmarkId1);
559 557
560 ResetResults(); 558 ResetResults();
561 559
562 const OfflinePageItem* page = 560 const OfflinePageItem* page =
563 model()->GetPageByBookmarkId(kTestPageBookmarkId1); 561 model()->GetPageByBookmarkId(kTestPageBookmarkId1);
564 // Delete the offline copy of the page and check the metadata. 562 // Delete the offline copy of the page and check the metadata.
565 base::DeleteFile(page->file_path, false); 563 base::DeleteFile(page->file_path, false);
566 // Reseting the model should trigger the metadata consistency check as well. 564 // Reseting the model should trigger the metadata consistency check as well.
567 ResetModel(); 565 ResetModel();
568 PumpLoop(); 566 PumpLoop();
569 567
570 EXPECT_EQ(last_deleted_bookmark_id(), kTestPageBookmarkId1); 568 EXPECT_EQ(last_deleted_offline_id(), kTestPageBookmarkId1);
571 EXPECT_EQ(0UL, model()->GetAllPages().size()); 569 EXPECT_EQ(0UL, model()->GetAllPages().size());
572 } 570 }
573 571
574 TEST_F(OfflinePageModelTest, DeleteMultiplePages) { 572 TEST_F(OfflinePageModelTest, DeleteMultiplePages) {
575 OfflinePageTestStore* store = GetStore(); 573 OfflinePageTestStore* store = GetStore();
576 574
577 // Save 3 pages. 575 // Save 3 pages.
578 scoped_ptr<OfflinePageTestArchiver> archiver(BuildArchiver( 576 scoped_ptr<OfflinePageTestArchiver> archiver(BuildArchiver(
579 kTestUrl, OfflinePageArchiver::ArchiverResult::SUCCESSFULLY_CREATED)); 577 kTestUrl, OfflinePageArchiver::ArchiverResult::SUCCESSFULLY_CREATED));
580 model()->SavePage( 578 model()->SavePage(
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
614 } 612 }
615 613
616 TEST_F(OfflinePageModelTest, GetPageByBookmarkId) { 614 TEST_F(OfflinePageModelTest, GetPageByBookmarkId) {
617 SavePage(kTestUrl, kTestPageBookmarkId1); 615 SavePage(kTestUrl, kTestPageBookmarkId1);
618 SavePage(kTestUrl2, kTestPageBookmarkId2); 616 SavePage(kTestUrl2, kTestPageBookmarkId2);
619 617
620 const OfflinePageItem* page = 618 const OfflinePageItem* page =
621 model()->GetPageByBookmarkId(kTestPageBookmarkId1); 619 model()->GetPageByBookmarkId(kTestPageBookmarkId1);
622 ASSERT_TRUE(page); 620 ASSERT_TRUE(page);
623 EXPECT_EQ(kTestUrl, page->url); 621 EXPECT_EQ(kTestUrl, page->url);
624 EXPECT_EQ(kTestPageBookmarkId1, page->bookmark_id); 622 EXPECT_EQ(kTestPageBookmarkId1, page->offline_id);
625 EXPECT_EQ(kTestFileSize, page->file_size); 623 EXPECT_EQ(kTestFileSize, page->file_size);
626 624
627 page = model()->GetPageByBookmarkId(kTestPageBookmarkId2); 625 page = model()->GetPageByBookmarkId(kTestPageBookmarkId2);
628 ASSERT_TRUE(page); 626 ASSERT_TRUE(page);
629 EXPECT_EQ(kTestUrl2, page->url); 627 EXPECT_EQ(kTestUrl2, page->url);
630 EXPECT_EQ(kTestPageBookmarkId2, page->bookmark_id); 628 EXPECT_EQ(kTestPageBookmarkId2, page->offline_id);
631 EXPECT_EQ(kTestFileSize, page->file_size); 629 EXPECT_EQ(kTestFileSize, page->file_size);
632 630
633 page = model()->GetPageByBookmarkId(-42); 631 page = model()->GetPageByBookmarkId(-42);
634 EXPECT_FALSE(page); 632 EXPECT_FALSE(page);
635 } 633 }
636 634
637 TEST_F(OfflinePageModelTest, GetPageByOfflineURL) { 635 TEST_F(OfflinePageModelTest, GetPageByOfflineURL) {
638 SavePage(kTestUrl, kTestPageBookmarkId1); 636 SavePage(kTestUrl, kTestPageBookmarkId1);
639 637
640 OfflinePageTestStore* store = GetStore(); 638 OfflinePageTestStore* store = GetStore();
641 GURL offline_url = store->last_saved_page().GetOfflineURL(); 639 GURL offline_url = store->last_saved_page().GetOfflineURL();
642 640
643 SavePage(kTestUrl2, kTestPageBookmarkId2); 641 SavePage(kTestUrl2, kTestPageBookmarkId2);
644 642
645 GURL offline_url2 = store->last_saved_page().GetOfflineURL(); 643 GURL offline_url2 = store->last_saved_page().GetOfflineURL();
646 644
647 const OfflinePageItem* page = model()->GetPageByOfflineURL(offline_url2); 645 const OfflinePageItem* page = model()->GetPageByOfflineURL(offline_url2);
648 EXPECT_TRUE(page); 646 EXPECT_TRUE(page);
649 EXPECT_EQ(kTestUrl2, page->url); 647 EXPECT_EQ(kTestUrl2, page->url);
650 EXPECT_EQ(kTestPageBookmarkId2, page->bookmark_id); 648 EXPECT_EQ(kTestPageBookmarkId2, page->offline_id);
651 649
652 page = model()->GetPageByOfflineURL(offline_url); 650 page = model()->GetPageByOfflineURL(offline_url);
653 EXPECT_TRUE(page); 651 EXPECT_TRUE(page);
654 EXPECT_EQ(kTestUrl, page->url); 652 EXPECT_EQ(kTestUrl, page->url);
655 EXPECT_EQ(kTestPageBookmarkId1, page->bookmark_id); 653 EXPECT_EQ(kTestPageBookmarkId1, page->offline_id);
656 654
657 page = model()->GetPageByOfflineURL(GURL("http://foo")); 655 page = model()->GetPageByOfflineURL(GURL("http://foo"));
658 EXPECT_FALSE(page); 656 EXPECT_FALSE(page);
659 } 657 }
660 658
661 TEST_F(OfflinePageModelTest, GetPageByOnlineURL) { 659 TEST_F(OfflinePageModelTest, GetPageByOnlineURL) {
662 SavePage(kTestUrl, kTestPageBookmarkId1); 660 SavePage(kTestUrl, kTestPageBookmarkId1);
663 SavePage(kTestUrl2, kTestPageBookmarkId2); 661 SavePage(kTestUrl2, kTestPageBookmarkId2);
664 662
665 const OfflinePageItem* page = model()->GetPageByOnlineURL(kTestUrl2); 663 const OfflinePageItem* page = model()->GetPageByOnlineURL(kTestUrl2);
666 EXPECT_TRUE(page); 664 EXPECT_TRUE(page);
667 EXPECT_EQ(kTestUrl2, page->url); 665 EXPECT_EQ(kTestUrl2, page->url);
668 EXPECT_EQ(kTestPageBookmarkId2, page->bookmark_id); 666 EXPECT_EQ(kTestPageBookmarkId2, page->offline_id);
669 667
670 page = model()->GetPageByOnlineURL(kTestUrl); 668 page = model()->GetPageByOnlineURL(kTestUrl);
671 EXPECT_TRUE(page); 669 EXPECT_TRUE(page);
672 EXPECT_EQ(kTestUrl, page->url); 670 EXPECT_EQ(kTestUrl, page->url);
673 EXPECT_EQ(kTestPageBookmarkId1, page->bookmark_id); 671 EXPECT_EQ(kTestPageBookmarkId1, page->offline_id);
674 672
675 page = model()->GetPageByOnlineURL(GURL("http://foo")); 673 page = model()->GetPageByOnlineURL(GURL("http://foo"));
676 EXPECT_FALSE(page); 674 EXPECT_FALSE(page);
677 } 675 }
678 676
679 // Test that model returns pages that are older than 30 days as candidates for 677 // Test that model returns pages that are older than 30 days as candidates for
680 // clean up, hence the numbers in time delta. 678 // clean up, hence the numbers in time delta.
681 TEST_F(OfflinePageModelTest, GetPagesToCleanUp) { 679 TEST_F(OfflinePageModelTest, GetPagesToCleanUp) {
682 base::Time now = base::Time::Now(); 680 base::Time now = base::Time::Now();
683 681
684 SavePage(kTestUrl, kTestPageBookmarkId1); 682 SavePage(kTestUrl, kTestPageBookmarkId1);
685 GetStore()->UpdateLastAccessTime(kTestPageBookmarkId1, 683 GetStore()->UpdateLastAccessTime(kTestPageBookmarkId1,
686 now - base::TimeDelta::FromDays(40)); 684 now - base::TimeDelta::FromDays(40));
687 685
688 SavePage(kTestUrl2, kTestPageBookmarkId2); 686 SavePage(kTestUrl2, kTestPageBookmarkId2);
689 GetStore()->UpdateLastAccessTime(kTestPageBookmarkId2, 687 GetStore()->UpdateLastAccessTime(kTestPageBookmarkId2,
690 now - base::TimeDelta::FromDays(31)); 688 now - base::TimeDelta::FromDays(31));
691 689
692 SavePage(kTestUrl3, kTestPageBookmarkId3); 690 SavePage(kTestUrl3, kTestPageBookmarkId3);
693 GetStore()->UpdateLastAccessTime(kTestPageBookmarkId3, 691 GetStore()->UpdateLastAccessTime(kTestPageBookmarkId3,
694 now - base::TimeDelta::FromDays(29)); 692 now - base::TimeDelta::FromDays(29));
695 693
696 ResetModel(); 694 ResetModel();
697 695
698 // Only page_1 and page_2 are expected to be picked up by the model as page_3 696 // 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. 697 // has not been in the store long enough.
700 std::vector<OfflinePageItem> pages_to_clean_up = model()->GetPagesToCleanUp(); 698 std::vector<OfflinePageItem> pages_to_clean_up = model()->GetPagesToCleanUp();
701 EXPECT_EQ(2UL, pages_to_clean_up.size()); 699 EXPECT_EQ(2UL, pages_to_clean_up.size());
702 EXPECT_EQ(kTestUrl, pages_to_clean_up[0].url); 700 EXPECT_EQ(kTestUrl, pages_to_clean_up[0].url);
703 EXPECT_EQ(kTestPageBookmarkId1, pages_to_clean_up[0].bookmark_id); 701 EXPECT_EQ(kTestPageBookmarkId1, pages_to_clean_up[0].offline_id);
704 EXPECT_EQ(kTestUrl2, pages_to_clean_up[1].url); 702 EXPECT_EQ(kTestUrl2, pages_to_clean_up[1].url);
705 EXPECT_EQ(kTestPageBookmarkId2, pages_to_clean_up[1].bookmark_id); 703 EXPECT_EQ(kTestPageBookmarkId2, pages_to_clean_up[1].offline_id);
706 } 704 }
707 705
708 TEST_F(OfflinePageModelTest, CanSavePage) { 706 TEST_F(OfflinePageModelTest, CanSavePage) {
709 EXPECT_TRUE(OfflinePageModel::CanSavePage(GURL("http://foo"))); 707 EXPECT_TRUE(OfflinePageModel::CanSavePage(GURL("http://foo")));
710 EXPECT_TRUE(OfflinePageModel::CanSavePage(GURL("https://foo"))); 708 EXPECT_TRUE(OfflinePageModel::CanSavePage(GURL("https://foo")));
711 EXPECT_FALSE(OfflinePageModel::CanSavePage(GURL("file:///foo"))); 709 EXPECT_FALSE(OfflinePageModel::CanSavePage(GURL("file:///foo")));
712 EXPECT_FALSE(OfflinePageModel::CanSavePage(GURL("data:image/png;base64,ab"))); 710 EXPECT_FALSE(OfflinePageModel::CanSavePage(GURL("data:image/png;base64,ab")));
713 EXPECT_FALSE(OfflinePageModel::CanSavePage(GURL("chrome://version"))); 711 EXPECT_FALSE(OfflinePageModel::CanSavePage(GURL("chrome://version")));
714 EXPECT_FALSE(OfflinePageModel::CanSavePage(GURL("chrome-native://newtab/"))); 712 EXPECT_FALSE(OfflinePageModel::CanSavePage(GURL("chrome-native://newtab/")));
715 } 713 }
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
910 bookmark_model()->Remove(bookmark_node); 908 bookmark_model()->Remove(bookmark_node);
911 PumpLoop(); 909 PumpLoop();
912 EXPECT_EQ(0UL, model()->GetAllPages().size()); 910 EXPECT_EQ(0UL, model()->GetAllPages().size());
913 911
914 // The offline copy should be restored upon the bookmark restore. 912 // The offline copy should be restored upon the bookmark restore.
915 UndoBookmarkRemoval(); 913 UndoBookmarkRemoval();
916 PumpLoop(); 914 PumpLoop();
917 EXPECT_EQ(1UL, model()->GetAllPages().size()); 915 EXPECT_EQ(1UL, model()->GetAllPages().size());
918 } 916 }
919 917
918 // TODO(bburns): Add a unit test for returning multiple results for a
919 // single client id.
920
920 } // namespace offline_pages 921 } // namespace offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698