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

Unified Diff: components/enhanced_bookmarks/enhanced_bookmark_model_unittest.cc

Issue 563363002: Only set remote id during url node creation. (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: Dedup remote ids + server service changes Created 6 years, 3 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/enhanced_bookmarks/enhanced_bookmark_model_unittest.cc
diff --git a/components/enhanced_bookmarks/enhanced_bookmark_model_unittest.cc b/components/enhanced_bookmarks/enhanced_bookmark_model_unittest.cc
index 5263297bb6f32af4d292dabfd45308e759a91e5e..edf052e3903165641efe8497f40487260353b2d7 100644
--- a/components/enhanced_bookmarks/enhanced_bookmark_model_unittest.cc
+++ b/components/enhanced_bookmarks/enhanced_bookmark_model_unittest.cc
@@ -18,6 +18,8 @@
namespace {
+using enhanced_bookmarks::EnhancedBookmarkModel;
+
const std::string BOOKMARK_URL("http://example.com/index.html");
class EnhancedBookmarkModelTest : public testing::Test {
@@ -28,11 +30,11 @@ class EnhancedBookmarkModelTest : public testing::Test {
virtual void SetUp() OVERRIDE {
bookmarks::TestBookmarkClient bookmark_client;
bookmark_model_.reset(bookmark_client.CreateModel().release());
- model_.reset(new enhanced_bookmarks::EnhancedBookmarkModel(
- bookmark_model_.get(), "v1.0"));
+ model_.reset(new EnhancedBookmarkModel(bookmark_model_.get(), "v1.0"));
}
virtual void TearDown() OVERRIDE {
+ model_->ShutDown();
model_.reset();
bookmark_model_.reset();
}
@@ -48,26 +50,40 @@ class EnhancedBookmarkModelTest : public testing::Test {
const BookmarkNode* AddBookmark(const std::string& name,
const BookmarkNode* parent) {
- return bookmark_model_->AddURL(parent,
- 0, // index.
- base::ASCIIToUTF16(name),
- GURL(BOOKMARK_URL));
+ return model_->AddURL(parent,
+ 0, // index.
+ base::ASCIIToUTF16(name),
+ GURL(BOOKMARK_URL),
+ base::Time::Now());
}
const BookmarkNode* AddFolder(const std::string& name,
const BookmarkNode* parent) {
- return bookmark_model_->AddFolder(parent, 0, base::ASCIIToUTF16(name));
+ return model_->AddFolder(parent, 0, base::ASCIIToUTF16(name));
+ }
+
+ std::string GetVersion(const BookmarkNode* node) {
+ return GetMetaInfoField(node, "stars.version");
+ }
+
+ std::string GetId(const BookmarkNode* node) {
+ return GetMetaInfoField(node, "stars.id");
}
- std::string GetVersionForNode(const BookmarkNode* node) {
- std::string version;
- if (!node->GetMetaInfo("stars.version", &version))
+ std::string GetOldId(const BookmarkNode* node) {
+ return GetMetaInfoField(node, "stars.oldId");
+ }
+
+ std::string GetMetaInfoField(const BookmarkNode* node,
+ const std::string& name) {
+ std::string value;
+ if (!node->GetMetaInfo(name, &value))
return std::string();
- return version;
+ return value;
}
scoped_ptr<BookmarkModel> bookmark_model_;
- scoped_ptr<enhanced_bookmarks::EnhancedBookmarkModel> model_;
+ scoped_ptr<EnhancedBookmarkModel> model_;
private:
DISALLOW_COPY_AND_ASSIGN(EnhancedBookmarkModelTest);
@@ -253,7 +269,7 @@ TEST_F(EnhancedBookmarkModelTest, TestEncodeDecode) {
EXPECT_EQ(url, GURL("http://example.com/i.jpg"));
EXPECT_EQ(width, 22);
EXPECT_EQ(height, 33);
- EXPECT_EQ("v1.0", GetVersionForNode(node));
+ EXPECT_EQ("v1.0", GetVersion(node));
}
TEST_F(EnhancedBookmarkModelTest, TestDoubleEncodeDecode) {
@@ -276,25 +292,26 @@ TEST_F(EnhancedBookmarkModelTest, TestDoubleEncodeDecode) {
EXPECT_EQ(url, GURL("http://example.com/i.jpg"));
EXPECT_EQ(width, 33);
EXPECT_EQ(height, 44);
- EXPECT_EQ("v1.0", GetVersionForNode(node));
+ EXPECT_EQ("v1.0", GetVersion(node));
}
TEST_F(EnhancedBookmarkModelTest, TestRemoteId) {
const BookmarkNode* node = AddBookmark();
- const BookmarkNode* folder_node = AddFolder();
-
- std::string remote_id = model_->GetRemoteId(node);
- // First call creates the UUID, second call should return the same.
- EXPECT_EQ(remote_id, model_->GetRemoteId(node));
-
// Verify that the remote id starts with the correct prefix.
- EXPECT_TRUE(StartsWithASCII(remote_id, "ebc_", true));
- std::string folder_remote_id = model_->GetRemoteId(folder_node);
- EXPECT_TRUE(StartsWithASCII(folder_remote_id, "ebf_", true));
-
- // Verifiy version field was set.
- EXPECT_EQ("v1.0", GetVersionForNode(node));
- EXPECT_EQ("v1.0", GetVersionForNode(folder_node));
+ EXPECT_TRUE(StartsWithASCII(model_->GetRemoteId(node), "ebc_", true));
+
+ // Getting the remote id for nodes that don't have them should return the
+ // empty string.
+ const BookmarkNode* existing_node =
+ bookmark_model_->AddURL(bookmark_model_->other_node(),
+ 0,
+ base::ASCIIToUTF16("Title"),
+ GURL(GURL(BOOKMARK_URL)));
+ EXPECT_TRUE(model_->GetRemoteId(existing_node).empty());
+
+ // Folder nodes should not have a remote id set on creation.
+ const BookmarkNode* folder_node = AddFolder();
+ EXPECT_TRUE(model_->GetRemoteId(folder_node).empty());
}
TEST_F(EnhancedBookmarkModelTest, TestEmptyDescription) {
@@ -313,7 +330,7 @@ TEST_F(EnhancedBookmarkModelTest, TestDescription) {
// Check the description is the one that was set.
EXPECT_EQ(model_->GetDescription(node), description);
- EXPECT_EQ("v1.0", GetVersionForNode(node));
+ EXPECT_EQ("v1.0", GetVersion(node));
}
// If there is no notes field, the description should fall back on the snippet.
@@ -349,10 +366,10 @@ TEST_F(EnhancedBookmarkModelTest, TestDescriptionFallback) {
// EnhancedBookmarkModel makes a change to a node.
TEST_F(EnhancedBookmarkModelTest, TestVersionField) {
const BookmarkNode* node = AddBookmark();
- EXPECT_EQ("", GetVersionForNode(node));
+ EXPECT_EQ("", GetVersion(node));
model_->SetDescription(node, "foo");
- EXPECT_EQ("v1.0", GetVersionForNode(node));
+ EXPECT_EQ("v1.0", GetVersion(node));
// Add a suffix to the version to set.
model_->SetVersionSuffix("alpha");
@@ -360,21 +377,97 @@ TEST_F(EnhancedBookmarkModelTest, TestVersionField) {
model_->SetDescription(node, "foo");
// Since the description didn't actually change, the version field should
// not either.
- EXPECT_EQ("v1.0", GetVersionForNode(node));
+ EXPECT_EQ("v1.0", GetVersion(node));
model_->SetDescription(node, "bar");
- EXPECT_EQ("v1.0/alpha", GetVersionForNode(node));
+ EXPECT_EQ("v1.0/alpha", GetVersion(node));
}
-// Verifies that the stars.userEdit field is set appropriately when editing a
-// node.
-TEST_F(EnhancedBookmarkModelTest, TestUserEdit) {
- const BookmarkNode* node = AddBookmark();
+// Verifies that duplicate nodes are reset when the model is created.
+TEST_F(EnhancedBookmarkModelTest, ResetDuplicateNodesOnInitialization) {
+ model_->ShutDown();
+
+ const BookmarkNode* parent = bookmark_model_->other_node();
+ const BookmarkNode* node1 = bookmark_model_->AddURL(
+ parent, 0, base::ASCIIToUTF16("Some title"), GURL(BOOKMARK_URL));
+ const BookmarkNode* node2 = bookmark_model_->AddURL(
+ parent, 0, base::ASCIIToUTF16("Some title"), GURL(BOOKMARK_URL));
+ const BookmarkNode* node3 = bookmark_model_->AddURL(
+ parent, 0, base::ASCIIToUTF16("Some title"), GURL(BOOKMARK_URL));
+ const BookmarkNode* node4 = bookmark_model_->AddURL(
+ parent, 0, base::ASCIIToUTF16("Some title"), GURL(BOOKMARK_URL));
+
+ bookmark_model_->SetNodeMetaInfo(node1, "stars.id", "c_1");
+ bookmark_model_->SetNodeMetaInfo(node2, "stars.id", "c_2");
+ bookmark_model_->SetNodeMetaInfo(node3, "stars.id", "c_1");
+ bookmark_model_->SetNodeMetaInfo(node4, "stars.id", "c_1");
+ EXPECT_EQ("c_1", GetId(node1));
+ EXPECT_EQ("c_2", GetId(node2));
+ EXPECT_EQ("c_1", GetId(node3));
+ EXPECT_EQ("c_1", GetId(node4));
+
+ model_.reset(new EnhancedBookmarkModel(bookmark_model_.get(), "v2.0"));
+
+ EXPECT_EQ("c_2", GetId(node2));
+ EXPECT_EQ("", GetId(node1));
+ EXPECT_EQ("", GetId(node3));
+ EXPECT_EQ("", GetId(node4));
+ EXPECT_EQ("c_1", GetOldId(node1));
+ EXPECT_EQ("c_1", GetOldId(node3));
+ EXPECT_EQ("c_1", GetOldId(node4));
+ EXPECT_EQ("v2.0", GetVersion(node1));
+ EXPECT_EQ("v2.0", GetVersion(node3));
+ EXPECT_EQ("v2.0", GetVersion(node4));
+}
- model_->SetDescription(node, "foo");
- std::string user_edit;
- ASSERT_TRUE(node->GetMetaInfo("stars.userEdit", &user_edit));
- EXPECT_EQ("true", user_edit);
+// Verifies that duplicate nodes are reset if one is created.
+TEST_F(EnhancedBookmarkModelTest, ResetDuplicateAddedNodes) {
+ BookmarkNode::MetaInfoMap meta_info;
+ meta_info["stars.id"] = "c_1";
+ const BookmarkNode* parent = bookmark_model_->other_node();
+
+ const BookmarkNode* node1 =
+ bookmark_model_->AddURLWithCreationTimeAndMetaInfo(
+ parent,
+ 0,
+ base::ASCIIToUTF16("Some title"),
+ GURL(BOOKMARK_URL),
+ base::Time::Now(),
+ &meta_info);
+ EXPECT_EQ("c_1", GetId(node1));
+
+ const BookmarkNode* node2 =
+ bookmark_model_->AddURLWithCreationTimeAndMetaInfo(
+ parent,
+ 0,
+ base::ASCIIToUTF16("Some title"),
+ GURL(BOOKMARK_URL),
+ base::Time::Now(),
+ &meta_info);
+ EXPECT_EQ("", GetId(node1));
+ EXPECT_EQ("", GetId(node2));
+ EXPECT_EQ("c_1", GetOldId(node1));
+ EXPECT_EQ("c_1", GetOldId(node2));
+ EXPECT_EQ("v1.0", GetVersion(node1));
+ EXPECT_EQ("v1.0", GetVersion(node2));
+}
+
+// Verifies that duplicate nodes are reset if an id is changed to a duplicate
+// value.
+TEST_F(EnhancedBookmarkModelTest, ResetDuplicateChangedNodes) {
+ const BookmarkNode* node1 = AddBookmark();
+ const BookmarkNode* node2 = AddBookmark();
+
+ bookmark_model_->SetNodeMetaInfo(node1, "stars.id", "c_1");
+ EXPECT_EQ("c_1", GetId(node1));
+
+ bookmark_model_->SetNodeMetaInfo(node2, "stars.id", "c_1");
+ EXPECT_EQ("", GetId(node1));
+ EXPECT_EQ("", GetId(node2));
+ EXPECT_EQ("c_1", GetOldId(node1));
+ EXPECT_EQ("c_1", GetOldId(node2));
+ EXPECT_EQ("v1.0", GetVersion(node1));
+ EXPECT_EQ("v1.0", GetVersion(node2));
}
} // namespace

Powered by Google App Engine
This is Rietveld 408576698