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

Unified 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 changes 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 side-by-side diff with in-line comments
Download patch
Index: components/offline_pages/offline_page_model_unittest.cc
diff --git a/components/offline_pages/offline_page_model_unittest.cc b/components/offline_pages/offline_page_model_unittest.cc
index 253dc67da9e427671da31095bbe886f1f17cad82..aea301e1f2063526b1cad7b947bb2dc08153546e 100644
--- a/components/offline_pages/offline_page_model_unittest.cc
+++ b/components/offline_pages/offline_page_model_unittest.cc
@@ -13,6 +13,7 @@
#include "base/files/scoped_temp_dir.h"
#include "base/run_loop.h"
#include "base/single_thread_task_runner.h"
+#include "base/strings/string_number_conversions.h"
#include "base/strings/utf_string_conversions.h"
#include "base/test/test_mock_time_task_runner.h"
#include "base/thread_task_runner_handle.h"
@@ -37,12 +38,12 @@ namespace offline_pages {
namespace {
const GURL kTestUrl("http://example.com");
-const int64_t kTestPageBookmarkId1 = 1234LL;
+const ClientId kTestPageBookmarkId1(BOOKMARK_NAMESPACE, "1234");
const GURL kTestUrl2("http://other.page.com");
const GURL kTestUrl3("http://test.xyz");
const GURL kFileUrl("file:///foo");
-const int64_t kTestPageBookmarkId2 = 5678LL;
-const int64_t kTestPageBookmarkId3 = 42LL;
+const ClientId kTestPageBookmarkId2(BOOKMARK_NAMESPACE, "5678");
+const ClientId kTestPageBookmarkId3(BOOKMARK_NAMESPACE, "42");
const int64_t kTestFileSize = 876543LL;
} // namespace
@@ -62,13 +63,13 @@ class OfflinePageModelTest
// OfflinePageModel::Observer implementation.
void OfflinePageModelLoaded(OfflinePageModel* model) override;
void OfflinePageModelChanged(OfflinePageModel* model) override;
- void OfflinePageDeleted(int64_t bookmark_id) override;
+ void OfflinePageDeleted(int64_t offline_id) override;
// OfflinePageTestArchiver::Observer implementation.
void SetLastPathCreatedByArchiver(const base::FilePath& file_path) override;
// OfflinePageModel callbacks.
- void OnSavePageDone(SavePageResult result);
+ void OnSavePageDone(SavePageResult result, int64_t offline_id);
void OnDeletePageDone(DeletePageResult result);
void OnClearAllDone();
@@ -94,13 +95,15 @@ class OfflinePageModelTest
OfflinePageTestStore* GetStore();
- void SavePage(const GURL& url, int64_t bookmark_id);
+ void SavePage(const GURL& url, ClientId client_id);
void SavePageWithArchiverResult(const GURL& url,
- int64_t bookmark_id,
+ ClientId client_id,
OfflinePageArchiver::ArchiverResult result);
OfflinePageModel* model() { return model_.get(); }
+ int64_t last_save_offline_id() const { return last_save_offline_id_; }
+
SavePageResult last_save_result() const {
return last_save_result_;
}
@@ -109,7 +112,7 @@ class OfflinePageModelTest
return last_delete_result_;
}
- int64_t last_deleted_bookmark_id() const { return last_deleted_bookmark_id_; }
+ int64_t last_deleted_offline_id() const { return last_deleted_offline_id_; }
const base::FilePath& last_archiver_path() { return last_archiver_path_; }
@@ -120,18 +123,19 @@ class OfflinePageModelTest
scoped_ptr<OfflinePageModel> model_;
SavePageResult last_save_result_;
+ int64_t last_save_offline_id_;
DeletePageResult last_delete_result_;
base::FilePath last_archiver_path_;
- int64_t last_deleted_bookmark_id_;
+ int64_t last_deleted_offline_id_;
};
OfflinePageModelTest::OfflinePageModelTest()
: task_runner_(new base::TestMockTimeTaskRunner),
task_runner_handle_(task_runner_),
last_save_result_(SavePageResult::CANCELLED),
+ last_save_offline_id_(-1),
last_delete_result_(DeletePageResult::CANCELLED),
- last_deleted_bookmark_id_(-1) {
-}
+ last_deleted_offline_id_(-1) {}
OfflinePageModelTest::~OfflinePageModelTest() {
}
@@ -157,8 +161,8 @@ void OfflinePageModelTest::OfflinePageModelChanged(OfflinePageModel* model) {
ASSERT_EQ(model_.get(), model);
}
-void OfflinePageModelTest::OfflinePageDeleted(int64_t bookmark_id) {
- last_deleted_bookmark_id_ = bookmark_id;
+void OfflinePageModelTest::OfflinePageDeleted(int64_t offline_id) {
+ last_deleted_offline_id_ = offline_id;
}
void OfflinePageModelTest::SetLastPathCreatedByArchiver(
@@ -167,8 +171,10 @@ void OfflinePageModelTest::SetLastPathCreatedByArchiver(
}
void OfflinePageModelTest::OnSavePageDone(
- OfflinePageModel::SavePageResult result) {
+ OfflinePageModel::SavePageResult result,
+ int64_t offline_id) {
last_save_result_ = result;
+ last_save_offline_id_ = offline_id;
}
void OfflinePageModelTest::OnDeletePageDone(DeletePageResult result) {
@@ -228,20 +234,19 @@ OfflinePageTestStore* OfflinePageModelTest::GetStore() {
return static_cast<OfflinePageTestStore*>(model()->GetStoreForTesting());
}
-void OfflinePageModelTest::SavePage(const GURL& url, int64_t bookmark_id) {
+void OfflinePageModelTest::SavePage(const GURL& url, ClientId client_id) {
SavePageWithArchiverResult(
- url,
- bookmark_id,
+ url, client_id,
OfflinePageArchiver::ArchiverResult::SUCCESSFULLY_CREATED);
}
void OfflinePageModelTest::SavePageWithArchiverResult(
const GURL& url,
- int64_t bookmark_id,
+ ClientId client_id,
OfflinePageArchiver::ArchiverResult result) {
scoped_ptr<OfflinePageTestArchiver> archiver(BuildArchiver(url, result));
model()->SavePage(
- url, bookmark_id, std::move(archiver),
+ url, client_id, std::move(archiver),
base::Bind(&OfflinePageModelTest::OnSavePageDone, AsWeakPtr()));
PumpLoop();
}
@@ -253,7 +258,9 @@ TEST_F(OfflinePageModelTest, SavePageSuccessful) {
OfflinePageTestStore* store = GetStore();
EXPECT_EQ(kTestUrl, store->last_saved_page().url);
- EXPECT_EQ(kTestPageBookmarkId1, store->last_saved_page().bookmark_id);
+ EXPECT_EQ(kTestPageBookmarkId1.id, store->last_saved_page().client_id.id);
+ EXPECT_EQ(kTestPageBookmarkId1.name_space,
+ store->last_saved_page().client_id.name_space);
// Save last_archiver_path since it will be referred to later.
base::FilePath archiver_path = last_archiver_path();
EXPECT_EQ(archiver_path, store->last_saved_page().file_path);
@@ -265,7 +272,9 @@ TEST_F(OfflinePageModelTest, SavePageSuccessful) {
EXPECT_EQ(1UL, offline_pages.size());
EXPECT_EQ(kTestUrl, offline_pages[0].url);
- EXPECT_EQ(kTestPageBookmarkId1, offline_pages[0].bookmark_id);
+ EXPECT_EQ(kTestPageBookmarkId1.id, offline_pages[0].client_id.id);
+ EXPECT_EQ(kTestPageBookmarkId1.name_space,
+ offline_pages[0].client_id.name_space);
EXPECT_EQ(archiver_path, offline_pages[0].file_path);
EXPECT_EQ(kTestFileSize, offline_pages[0].file_size);
EXPECT_EQ(0, offline_pages[0].access_count);
@@ -350,7 +359,7 @@ TEST_F(OfflinePageModelTest, SavePageOfflineArchiverTwoPages) {
OfflinePageTestStore* store = GetStore();
EXPECT_EQ(kTestUrl2, store->last_saved_page().url);
- EXPECT_EQ(kTestPageBookmarkId2, store->last_saved_page().bookmark_id);
+ EXPECT_EQ(kTestPageBookmarkId2, store->last_saved_page().client_id);
base::FilePath archiver_path2 = last_archiver_path();
EXPECT_EQ(archiver_path2, store->last_saved_page().file_path);
EXPECT_EQ(kTestFileSize, store->last_saved_page().file_size);
@@ -363,7 +372,7 @@ TEST_F(OfflinePageModelTest, SavePageOfflineArchiverTwoPages) {
PumpLoop();
EXPECT_EQ(kTestUrl, store->last_saved_page().url);
- EXPECT_EQ(kTestPageBookmarkId1, store->last_saved_page().bookmark_id);
+ EXPECT_EQ(kTestPageBookmarkId1, store->last_saved_page().client_id);
base::FilePath archiver_path = last_archiver_path();
EXPECT_EQ(archiver_path, store->last_saved_page().file_path);
EXPECT_EQ(kTestFileSize, store->last_saved_page().file_size);
@@ -374,32 +383,44 @@ TEST_F(OfflinePageModelTest, SavePageOfflineArchiverTwoPages) {
const std::vector<OfflinePageItem>& offline_pages = model()->GetAllPages();
EXPECT_EQ(2UL, offline_pages.size());
- EXPECT_EQ(kTestUrl, offline_pages[0].url);
- EXPECT_EQ(kTestPageBookmarkId1, offline_pages[0].bookmark_id);
- EXPECT_EQ(archiver_path, offline_pages[0].file_path);
- EXPECT_EQ(kTestFileSize, offline_pages[0].file_size);
- EXPECT_EQ(0, offline_pages[0].access_count);
- EXPECT_EQ(0, offline_pages[0].flags);
- EXPECT_EQ(kTestUrl2, offline_pages[1].url);
- EXPECT_EQ(kTestPageBookmarkId2, offline_pages[1].bookmark_id);
- EXPECT_EQ(archiver_path2, offline_pages[1].file_path);
- EXPECT_EQ(kTestFileSize, offline_pages[1].file_size);
- EXPECT_EQ(0, offline_pages[1].access_count);
- EXPECT_EQ(0, offline_pages[1].flags);
+ // Offline IDs are random, so the order of the pages is also random
+ // So load in the right page for the validation below.
+ const OfflinePageItem* page1;
+ const OfflinePageItem* page2;
+ if (offline_pages[0].client_id == kTestPageBookmarkId1) {
+ page1 = &offline_pages[0];
+ page2 = &offline_pages[1];
+ } else {
+ page1 = &offline_pages[1];
+ page2 = &offline_pages[0];
+ }
+
+ EXPECT_EQ(kTestUrl, page1->url);
+ EXPECT_EQ(kTestPageBookmarkId1, page1->client_id);
+ EXPECT_EQ(archiver_path, page1->file_path);
+ EXPECT_EQ(kTestFileSize, page1->file_size);
+ EXPECT_EQ(0, page1->access_count);
+ EXPECT_EQ(0, page1->flags);
+ EXPECT_EQ(kTestUrl2, page2->url);
+ EXPECT_EQ(kTestPageBookmarkId2, page2->client_id);
+ EXPECT_EQ(archiver_path2, page2->file_path);
+ EXPECT_EQ(kTestFileSize, page2->file_size);
+ EXPECT_EQ(0, page2->access_count);
+ EXPECT_EQ(0, page2->flags);
}
TEST_F(OfflinePageModelTest, MarkPageAccessed) {
SavePage(kTestUrl, kTestPageBookmarkId1);
// This will increase access_count by one.
- model()->MarkPageAccessed(kTestPageBookmarkId1);
+ model()->MarkPageAccessed(last_save_offline_id());
PumpLoop();
const std::vector<OfflinePageItem>& offline_pages = model()->GetAllPages();
EXPECT_EQ(1UL, offline_pages.size());
EXPECT_EQ(kTestUrl, offline_pages[0].url);
- EXPECT_EQ(kTestPageBookmarkId1, offline_pages[0].bookmark_id);
+ EXPECT_EQ(kTestPageBookmarkId1, offline_pages[0].client_id);
EXPECT_EQ(kTestFileSize, offline_pages[0].file_size);
EXPECT_EQ(1, offline_pages[0].access_count);
}
@@ -411,7 +432,7 @@ TEST_F(OfflinePageModelTest, MarkPageForDeletion) {
// Delete the page with undo tiggerred.
model()->MarkPageForDeletion(
- kTestPageBookmarkId1,
+ last_save_offline_id(),
base::Bind(&OfflinePageModelTest::OnDeletePageDone, AsWeakPtr()));
PumpLoop();
@@ -421,11 +442,11 @@ TEST_F(OfflinePageModelTest, MarkPageForDeletion) {
EXPECT_FALSE(model()->HasOfflinePages());
EXPECT_EQ(nullptr, model()->GetPageByOnlineURL(kTestUrl));
- EXPECT_EQ(nullptr, model()->GetPageByBookmarkId(kTestPageBookmarkId1));
+ EXPECT_EQ(nullptr, model()->GetPageByOfflineId(last_save_offline_id()));
EXPECT_EQ(nullptr, model()->GetPageByOfflineURL(offline_url));
// Undo the deletion.
- model()->UndoPageDeletion(kTestPageBookmarkId1);
+ model()->UndoPageDeletion(last_save_offline_id());
PumpLoop();
// GetAllPages will now return the restored page.
@@ -444,7 +465,7 @@ TEST_F(OfflinePageModelTest, FinalizePageDeletion) {
// Mark the page for deletion.
model()->MarkPageForDeletion(
- kTestPageBookmarkId1,
+ last_save_offline_id(),
base::Bind(&OfflinePageModelTest::OnDeletePageDone, AsWeakPtr()));
PumpLoop();
@@ -475,6 +496,7 @@ TEST_F(OfflinePageModelTest, DeletePageSuccessful) {
// Save one page.
SavePage(kTestUrl, kTestPageBookmarkId1);
+ int64_t offline1 = last_save_offline_id();
EXPECT_EQ(SavePageResult::SUCCESS, last_save_result());
EXPECT_EQ(1u, store->GetAllPages().size());
@@ -482,56 +504,56 @@ TEST_F(OfflinePageModelTest, DeletePageSuccessful) {
// Save another page.
SavePage(kTestUrl2, kTestPageBookmarkId2);
+ int64_t offline2 = last_save_offline_id();
EXPECT_EQ(SavePageResult::SUCCESS, last_save_result());
EXPECT_EQ(2u, store->GetAllPages().size());
ResetResults();
// Delete one page.
- model()->DeletePageByBookmarkId(
- kTestPageBookmarkId1, base::Bind(&OfflinePageModelTest::OnDeletePageDone,
- AsWeakPtr()));
+ model()->DeletePageByOfflineId(
+ offline1,
+ base::Bind(&OfflinePageModelTest::OnDeletePageDone, AsWeakPtr()));
PumpLoop();
- EXPECT_EQ(last_deleted_bookmark_id(), kTestPageBookmarkId1);
+ EXPECT_EQ(last_deleted_offline_id(), offline1);
EXPECT_EQ(DeletePageResult::SUCCESS, last_delete_result());
ASSERT_EQ(1u, store->GetAllPages().size());
EXPECT_EQ(kTestUrl2, store->GetAllPages()[0].url);
// Delete another page.
- model()->DeletePageByBookmarkId(
- kTestPageBookmarkId2, base::Bind(&OfflinePageModelTest::OnDeletePageDone,
- AsWeakPtr()));
+ model()->DeletePageByOfflineId(
+ offline2,
+ base::Bind(&OfflinePageModelTest::OnDeletePageDone, AsWeakPtr()));
ResetResults();
PumpLoop();
- EXPECT_EQ(last_deleted_bookmark_id(), kTestPageBookmarkId2);
+ EXPECT_EQ(last_deleted_offline_id(), offline2);
EXPECT_EQ(DeletePageResult::SUCCESS, last_delete_result());
EXPECT_EQ(0u, store->GetAllPages().size());
}
TEST_F(OfflinePageModelTest, DeletePageNotFound) {
- model()->DeletePageByBookmarkId(
- kTestPageBookmarkId1, base::Bind(&OfflinePageModelTest::OnDeletePageDone,
- AsWeakPtr()));
+ model()->DeletePageByOfflineId(
+ 1234LL, base::Bind(&OfflinePageModelTest::OnDeletePageDone, AsWeakPtr()));
EXPECT_EQ(DeletePageResult::NOT_FOUND, last_delete_result());
}
TEST_F(OfflinePageModelTest, DeletePageStoreFailureOnRemove) {
// Save a page.
SavePage(kTestUrl, kTestPageBookmarkId1);
-
+ int64_t offline_id = last_save_offline_id();
ResetResults();
// Try to delete this page.
GetStore()->set_test_scenario(
OfflinePageTestStore::TestScenario::REMOVE_FAILED);
- model()->DeletePageByBookmarkId(
- kTestPageBookmarkId1, base::Bind(&OfflinePageModelTest::OnDeletePageDone,
- AsWeakPtr()));
+ model()->DeletePageByOfflineId(
+ offline_id,
+ base::Bind(&OfflinePageModelTest::OnDeletePageDone, AsWeakPtr()));
PumpLoop();
EXPECT_EQ(DeletePageResult::STORE_FAILURE, last_delete_result());
}
@@ -539,35 +561,37 @@ TEST_F(OfflinePageModelTest, DeletePageStoreFailureOnRemove) {
TEST_F(OfflinePageModelTest, DetectThatOfflineCopyIsMissing) {
// Save a page.
SavePage(kTestUrl, kTestPageBookmarkId1);
+ int64_t offline_id = last_save_offline_id();
ResetResults();
- const OfflinePageItem* page =
- model()->GetPageByBookmarkId(kTestPageBookmarkId1);
+ const OfflinePageItem* page = model()->GetPageByOfflineId(offline_id);
+
// Delete the offline copy of the page and check the metadata.
base::DeleteFile(page->file_path, false);
model()->CheckForExternalFileDeletion();
PumpLoop();
- EXPECT_EQ(last_deleted_bookmark_id(), kTestPageBookmarkId1);
+ EXPECT_EQ(last_deleted_offline_id(), offline_id);
EXPECT_EQ(0UL, model()->GetAllPages().size());
}
TEST_F(OfflinePageModelTest, DetectThatOfflineCopyIsMissingAfterLoad) {
// Save a page.
SavePage(kTestUrl, kTestPageBookmarkId1);
+ PumpLoop();
+ int64_t offline_id = last_save_offline_id();
ResetResults();
- const OfflinePageItem* page =
- model()->GetPageByBookmarkId(kTestPageBookmarkId1);
+ const OfflinePageItem* page = model()->GetPageByOfflineId(offline_id);
// Delete the offline copy of the page and check the metadata.
base::DeleteFile(page->file_path, false);
// Reseting the model should trigger the metadata consistency check as well.
ResetModel();
PumpLoop();
- EXPECT_EQ(last_deleted_bookmark_id(), kTestPageBookmarkId1);
+ EXPECT_EQ(last_deleted_offline_id(), offline_id);
EXPECT_EQ(0UL, model()->GetAllPages().size());
}
@@ -581,6 +605,7 @@ TEST_F(OfflinePageModelTest, DeleteMultiplePages) {
kTestUrl, kTestPageBookmarkId1, std::move(archiver),
base::Bind(&OfflinePageModelTest::OnSavePageDone, AsWeakPtr()));
PumpLoop();
+ int64_t offline1 = last_save_offline_id();
scoped_ptr<OfflinePageTestArchiver> archiver2(BuildArchiver(
kTestUrl2, OfflinePageArchiver::ArchiverResult::SUCCESSFULLY_CREATED));
@@ -588,6 +613,7 @@ TEST_F(OfflinePageModelTest, DeleteMultiplePages) {
kTestUrl2, kTestPageBookmarkId2, std::move(archiver2),
base::Bind(&OfflinePageModelTest::OnSavePageDone, AsWeakPtr()));
PumpLoop();
+ int64_t offline2 = last_save_offline_id();
scoped_ptr<OfflinePageTestArchiver> archiver3(BuildArchiver(
kTestUrl3, OfflinePageArchiver::ArchiverResult::SUCCESSFULLY_CREATED));
@@ -600,12 +626,12 @@ TEST_F(OfflinePageModelTest, DeleteMultiplePages) {
// Delete multiple pages.
std::vector<int64_t> ids_to_delete;
- ids_to_delete.push_back(kTestPageBookmarkId2);
- ids_to_delete.push_back(kTestPageBookmarkId1);
+ ids_to_delete.push_back(offline2);
+ ids_to_delete.push_back(offline1);
ids_to_delete.push_back(23434LL); // Non-existent ID.
- model()->DeletePagesByBookmarkId(
- ids_to_delete, base::Bind(&OfflinePageModelTest::OnDeletePageDone,
- AsWeakPtr()));
+ model()->DeletePagesByOfflineId(
+ ids_to_delete,
+ base::Bind(&OfflinePageModelTest::OnDeletePageDone, AsWeakPtr()));
PumpLoop();
// Success is expected if at least one page is deleted successfully.
@@ -613,29 +639,31 @@ TEST_F(OfflinePageModelTest, DeleteMultiplePages) {
EXPECT_EQ(1u, store->GetAllPages().size());
}
-TEST_F(OfflinePageModelTest, GetPageByBookmarkId) {
+TEST_F(OfflinePageModelTest, GetPageByOfflineId) {
SavePage(kTestUrl, kTestPageBookmarkId1);
+ int64_t offline1 = last_save_offline_id();
SavePage(kTestUrl2, kTestPageBookmarkId2);
+ int64_t offline2 = last_save_offline_id();
- const OfflinePageItem* page =
- model()->GetPageByBookmarkId(kTestPageBookmarkId1);
+ const OfflinePageItem* page = model()->GetPageByOfflineId(offline1);
ASSERT_TRUE(page);
EXPECT_EQ(kTestUrl, page->url);
- EXPECT_EQ(kTestPageBookmarkId1, page->bookmark_id);
+ EXPECT_EQ(kTestPageBookmarkId1, page->client_id);
EXPECT_EQ(kTestFileSize, page->file_size);
- page = model()->GetPageByBookmarkId(kTestPageBookmarkId2);
+ page = model()->GetPageByOfflineId(offline2);
ASSERT_TRUE(page);
EXPECT_EQ(kTestUrl2, page->url);
- EXPECT_EQ(kTestPageBookmarkId2, page->bookmark_id);
+ EXPECT_EQ(kTestPageBookmarkId2, page->client_id);
EXPECT_EQ(kTestFileSize, page->file_size);
- page = model()->GetPageByBookmarkId(-42);
+ page = model()->GetPageByOfflineId(-42);
EXPECT_FALSE(page);
}
TEST_F(OfflinePageModelTest, GetPageByOfflineURL) {
SavePage(kTestUrl, kTestPageBookmarkId1);
+ int64_t offline1 = last_save_offline_id();
OfflinePageTestStore* store = GetStore();
GURL offline_url = store->last_saved_page().GetOfflineURL();
@@ -643,16 +671,19 @@ TEST_F(OfflinePageModelTest, GetPageByOfflineURL) {
SavePage(kTestUrl2, kTestPageBookmarkId2);
GURL offline_url2 = store->last_saved_page().GetOfflineURL();
+ int64_t offline2 = last_save_offline_id();
const OfflinePageItem* page = model()->GetPageByOfflineURL(offline_url2);
EXPECT_TRUE(page);
EXPECT_EQ(kTestUrl2, page->url);
- EXPECT_EQ(kTestPageBookmarkId2, page->bookmark_id);
+ EXPECT_EQ(kTestPageBookmarkId2, page->client_id);
+ EXPECT_EQ(offline2, page->offline_id);
page = model()->GetPageByOfflineURL(offline_url);
EXPECT_TRUE(page);
EXPECT_EQ(kTestUrl, page->url);
- EXPECT_EQ(kTestPageBookmarkId1, page->bookmark_id);
+ EXPECT_EQ(kTestPageBookmarkId1, page->client_id);
+ EXPECT_EQ(offline1, page->offline_id);
page = model()->GetPageByOfflineURL(GURL("http://foo"));
EXPECT_FALSE(page);
@@ -665,12 +696,12 @@ TEST_F(OfflinePageModelTest, GetPageByOnlineURL) {
const OfflinePageItem* page = model()->GetPageByOnlineURL(kTestUrl2);
EXPECT_TRUE(page);
EXPECT_EQ(kTestUrl2, page->url);
- EXPECT_EQ(kTestPageBookmarkId2, page->bookmark_id);
+ EXPECT_EQ(kTestPageBookmarkId2, page->client_id);
page = model()->GetPageByOnlineURL(kTestUrl);
EXPECT_TRUE(page);
EXPECT_EQ(kTestUrl, page->url);
- EXPECT_EQ(kTestPageBookmarkId1, page->bookmark_id);
+ EXPECT_EQ(kTestPageBookmarkId1, page->client_id);
page = model()->GetPageByOnlineURL(GURL("http://foo"));
EXPECT_FALSE(page);
@@ -682,15 +713,15 @@ TEST_F(OfflinePageModelTest, GetPagesToCleanUp) {
base::Time now = base::Time::Now();
SavePage(kTestUrl, kTestPageBookmarkId1);
- GetStore()->UpdateLastAccessTime(kTestPageBookmarkId1,
+ GetStore()->UpdateLastAccessTime(last_save_offline_id(),
now - base::TimeDelta::FromDays(40));
SavePage(kTestUrl2, kTestPageBookmarkId2);
- GetStore()->UpdateLastAccessTime(kTestPageBookmarkId2,
+ GetStore()->UpdateLastAccessTime(last_save_offline_id(),
now - base::TimeDelta::FromDays(31));
SavePage(kTestUrl3, kTestPageBookmarkId3);
- GetStore()->UpdateLastAccessTime(kTestPageBookmarkId3,
+ GetStore()->UpdateLastAccessTime(last_save_offline_id(),
now - base::TimeDelta::FromDays(29));
ResetModel();
@@ -698,11 +729,23 @@ TEST_F(OfflinePageModelTest, GetPagesToCleanUp) {
// Only page_1 and page_2 are expected to be picked up by the model as page_3
// has not been in the store long enough.
std::vector<OfflinePageItem> pages_to_clean_up = model()->GetPagesToCleanUp();
+ // Offline IDs are random, so the order of the pages is also random
+ // So load in the right page for the validation below.
+ const OfflinePageItem* page1;
+ const OfflinePageItem* page2;
+ if (pages_to_clean_up[0].client_id == kTestPageBookmarkId1) {
+ page1 = &pages_to_clean_up[0];
+ page2 = &pages_to_clean_up[1];
+ } else {
+ page1 = &pages_to_clean_up[1];
+ page2 = &pages_to_clean_up[0];
+ }
+
EXPECT_EQ(2UL, pages_to_clean_up.size());
- EXPECT_EQ(kTestUrl, pages_to_clean_up[0].url);
- EXPECT_EQ(kTestPageBookmarkId1, pages_to_clean_up[0].bookmark_id);
- EXPECT_EQ(kTestUrl2, pages_to_clean_up[1].url);
- EXPECT_EQ(kTestPageBookmarkId2, pages_to_clean_up[1].bookmark_id);
+ EXPECT_EQ(kTestUrl, page1->url);
+ EXPECT_EQ(kTestPageBookmarkId1, page1->client_id);
+ EXPECT_EQ(kTestUrl2, page2->url);
+ EXPECT_EQ(kTestPageBookmarkId2, page2->client_id);
}
TEST_F(OfflinePageModelTest, CanSavePage) {
@@ -833,7 +876,8 @@ TEST_F(OfflinePageModelBookmarkChangeTest, ChangeBookmakeTitle) {
EXPECT_EQ(0UL, model()->GetAllPages().size());
// Adds an offline copy for the bookmark.
- SavePage(kTestUrl, bookmark_node->id());
+ SavePage(kTestUrl, ClientId(BOOKMARK_NAMESPACE,
+ base::Int64ToString(bookmark_node->id())));
EXPECT_EQ(1UL, model()->GetAllPages().size());
// Changes the bookmark title. The offline copy was not affected.
@@ -855,7 +899,8 @@ TEST_F(OfflinePageModelBookmarkChangeTest, ChangeBookmakeURL) {
EXPECT_EQ(0UL, model()->GetAllPages().size());
// Adds an offline copy for the bookmark.
- SavePage(kTestUrl, bookmark_node->id());
+ SavePage(kTestUrl, ClientId(BOOKMARK_NAMESPACE,
+ base::Int64ToString(bookmark_node->id())));
EXPECT_EQ(1UL, model()->GetAllPages().size());
// The offline copy should be removed upon the bookmark URL change.
@@ -877,7 +922,8 @@ TEST_F(OfflinePageModelBookmarkChangeTest, RemoveBookmark) {
// Creates a bookmark with offline copy.
bookmark_node = CreateBookmarkNode(kTestUrl);
- SavePage(kTestUrl, bookmark_node->id());
+ SavePage(kTestUrl, ClientId(BOOKMARK_NAMESPACE,
+ base::Int64ToString(bookmark_node->id())));
EXPECT_EQ(1UL, model()->GetAllPages().size());
// The offline copy should also be removed upon the bookmark removal.
@@ -903,7 +949,8 @@ TEST_F(OfflinePageModelBookmarkChangeTest, UndoBookmarkRemoval) {
// Creates a bookmark with offline copy.
bookmark_node = CreateBookmarkNode(kTestUrl);
- SavePage(kTestUrl, bookmark_node->id());
+ SavePage(kTestUrl, ClientId(BOOKMARK_NAMESPACE,
+ base::Int64ToString(bookmark_node->id())));
EXPECT_EQ(1UL, model()->GetAllPages().size());
// The offline copy should also be removed upon the bookmark removal.
@@ -917,4 +964,29 @@ TEST_F(OfflinePageModelBookmarkChangeTest, UndoBookmarkRemoval) {
EXPECT_EQ(1UL, model()->GetAllPages().size());
}
+TEST_F(OfflinePageModelTest, SaveRetrieveMultipleClientIds) {
+ EXPECT_FALSE(model()->HasOfflinePages());
+ SavePage(kTestUrl, kTestPageBookmarkId1);
+ int64_t offline1 = last_save_offline_id();
+ EXPECT_TRUE(model()->HasOfflinePages());
+
+ SavePage(kTestUrl, kTestPageBookmarkId1);
+ int64_t offline2 = last_save_offline_id();
+
+ EXPECT_NE(offline1, offline2);
+
+ const std::vector<int64_t> ids =
+ model()->GetOfflineIdsForClientId(kTestPageBookmarkId1);
+
+ EXPECT_EQ(2UL, ids.size());
+
+ std::set<int64_t> id_set;
+ for (size_t i = 0; i < ids.size(); i++) {
+ id_set.insert(ids[i]);
+ }
+
+ EXPECT_TRUE(id_set.find(offline1) != id_set.end());
+ EXPECT_TRUE(id_set.find(offline2) != id_set.end());
+}
+
} // namespace offline_pages

Powered by Google App Engine
This is Rietveld 408576698