Chromium Code Reviews| Index: components/bookmarks/browser/bookmark_model_unittest.cc |
| diff --git a/components/bookmarks/browser/bookmark_model_unittest.cc b/components/bookmarks/browser/bookmark_model_unittest.cc |
| index cd6b09272bdec302ddc8dab83acf360fd6e576e7..3aa6d3b04f062272615d1d2ec261bf7a6d5304f3 100644 |
| --- a/components/bookmarks/browser/bookmark_model_unittest.cc |
| +++ b/components/bookmarks/browser/bookmark_model_unittest.cc |
| @@ -267,6 +267,23 @@ class BookmarkModelTest : public testing::Test, |
| int AllNodesRemovedObserverCount() const { return all_bookmarks_removed_; } |
| + BookmarkPermanentNode* ReloadModeWithExtraNode() { |
|
sky
2014/06/06 16:29:47
Mode->Model
Joao da Silva
2014/06/06 17:46:40
Done.
|
| + BookmarkPermanentNode* extra_node = new BookmarkPermanentNode(100); |
| + bookmarks::BookmarkPermanentNodeList extra_nodes; |
| + extra_nodes.push_back(extra_node); |
| + client_.SetExtraNodesToLoad(extra_nodes.Pass()); |
| + |
| + model_->RemoveObserver(this); |
| + model_ = client_.CreateModel(false); |
| + model_->AddObserver(this); |
| + ClearCounts(); |
| + |
| + if (model_->root_node()->GetIndexOf(extra_node) == -1) |
| + ADD_FAILURE(); |
| + |
| + return extra_node; |
| + } |
| + |
| protected: |
| test::TestBookmarkClient client_; |
| scoped_ptr<BookmarkModel> model_; |
| @@ -323,7 +340,7 @@ TEST_F(BookmarkModelTest, AddURL) { |
| ASSERT_EQ(title, new_node->GetTitle()); |
| ASSERT_TRUE(url == new_node->url()); |
| ASSERT_EQ(BookmarkNode::URL, new_node->type()); |
| - ASSERT_TRUE(new_node == model_->GetMostRecentlyAddedNodeForURL(url)); |
| + ASSERT_TRUE(new_node == model_->GetMostRecentlyAddedUserNodeForURL(url)); |
| EXPECT_TRUE(new_node->id() != root->id() && |
| new_node->id() != model_->other_node()->id() && |
| @@ -344,7 +361,7 @@ TEST_F(BookmarkModelTest, AddURLWithUnicodeTitle) { |
| ASSERT_EQ(title, new_node->GetTitle()); |
| ASSERT_TRUE(url == new_node->url()); |
| ASSERT_EQ(BookmarkNode::URL, new_node->type()); |
| - ASSERT_TRUE(new_node == model_->GetMostRecentlyAddedNodeForURL(url)); |
| + ASSERT_TRUE(new_node == model_->GetMostRecentlyAddedUserNodeForURL(url)); |
| EXPECT_TRUE(new_node->id() != root->id() && |
| new_node->id() != model_->other_node()->id() && |
| @@ -388,7 +405,7 @@ TEST_F(BookmarkModelTest, AddURLWithCreationTimeAndMetaInfo) { |
| ASSERT_EQ(time, new_node->date_added()); |
| ASSERT_TRUE(new_node->GetMetaInfoMap()); |
| ASSERT_EQ(meta_info, *new_node->GetMetaInfoMap()); |
| - ASSERT_TRUE(new_node == model_->GetMostRecentlyAddedNodeForURL(url)); |
| + ASSERT_TRUE(new_node == model_->GetMostRecentlyAddedUserNodeForURL(url)); |
| EXPECT_TRUE(new_node->id() != root->id() && |
| new_node->id() != model_->other_node()->id() && |
| @@ -408,7 +425,7 @@ TEST_F(BookmarkModelTest, AddURLToMobileBookmarks) { |
| ASSERT_EQ(title, new_node->GetTitle()); |
| ASSERT_TRUE(url == new_node->url()); |
| ASSERT_EQ(BookmarkNode::URL, new_node->type()); |
| - ASSERT_TRUE(new_node == model_->GetMostRecentlyAddedNodeForURL(url)); |
| + ASSERT_TRUE(new_node == model_->GetMostRecentlyAddedUserNodeForURL(url)); |
| EXPECT_TRUE(new_node->id() != root->id() && |
| new_node->id() != model_->other_node()->id() && |
| @@ -467,7 +484,7 @@ TEST_F(BookmarkModelTest, RemoveURL) { |
| observer_details_.ExpectEquals(root, NULL, 0, -1); |
| // Make sure there is no mapping for the URL. |
| - ASSERT_TRUE(model_->GetMostRecentlyAddedNodeForURL(url) == NULL); |
| + ASSERT_TRUE(model_->GetMostRecentlyAddedUserNodeForURL(url) == NULL); |
| } |
| TEST_F(BookmarkModelTest, RemoveFolder) { |
| @@ -490,7 +507,7 @@ TEST_F(BookmarkModelTest, RemoveFolder) { |
| observer_details_.ExpectEquals(root, NULL, 0, -1); |
| // Make sure there is no mapping for the URL. |
| - ASSERT_TRUE(model_->GetMostRecentlyAddedNodeForURL(url) == NULL); |
| + ASSERT_TRUE(model_->GetMostRecentlyAddedUserNodeForURL(url) == NULL); |
| } |
| TEST_F(BookmarkModelTest, RemoveAll) { |
| @@ -602,7 +619,7 @@ TEST_F(BookmarkModelTest, Move) { |
| model_->Remove(root, 0); |
| AssertObserverCount(0, 0, 1, 0, 0, 1, 0, 0, 0); |
| observer_details_.ExpectEquals(root, NULL, 0, -1); |
| - EXPECT_TRUE(model_->GetMostRecentlyAddedNodeForURL(url) == NULL); |
| + EXPECT_TRUE(model_->GetMostRecentlyAddedUserNodeForURL(url) == NULL); |
| EXPECT_EQ(0, root->child_count()); |
| } |
| @@ -709,7 +726,7 @@ TEST_F(BookmarkModelTest, MostRecentlyModifiedFolders) { |
| // Make sure folder is in the most recently modified. |
| std::vector<const BookmarkNode*> most_recent_folders = |
| - bookmark_utils::GetMostRecentlyModifiedFolders(model_.get(), 1); |
| + bookmark_utils::GetMostRecentlyModifiedUserFolders(model_.get(), 1); |
| ASSERT_EQ(1U, most_recent_folders.size()); |
| ASSERT_EQ(folder, most_recent_folders[0]); |
| @@ -717,7 +734,7 @@ TEST_F(BookmarkModelTest, MostRecentlyModifiedFolders) { |
| // returned list. |
| model_->Remove(folder->parent(), 0); |
| most_recent_folders = |
| - bookmark_utils::GetMostRecentlyModifiedFolders(model_.get(), 1); |
| + bookmark_utils::GetMostRecentlyModifiedUserFolders(model_.get(), 1); |
| ASSERT_EQ(1U, most_recent_folders.size()); |
| ASSERT_TRUE(most_recent_folders[0] != folder); |
| } |
| @@ -766,8 +783,8 @@ TEST_F(BookmarkModelTest, MostRecentlyAddedEntries) { |
| ASSERT_TRUE(n4 == recently_added[3]); |
| } |
| -// Makes sure GetMostRecentlyAddedNodeForURL stays in sync. |
| -TEST_F(BookmarkModelTest, GetMostRecentlyAddedNodeForURL) { |
| +// Makes sure GetMostRecentlyAddedUserNodeForURL stays in sync. |
| +TEST_F(BookmarkModelTest, GetMostRecentlyAddedUserNodeForURL) { |
| // Add a couple of nodes such that the following holds for the time of the |
| // nodes: n1 > n2 |
| Time base_time = Time::Now(); |
| @@ -780,11 +797,11 @@ TEST_F(BookmarkModelTest, GetMostRecentlyAddedNodeForURL) { |
| n2->set_date_added(base_time + TimeDelta::FromDays(3)); |
| // Make sure order is honored. |
| - ASSERT_EQ(n1, model_->GetMostRecentlyAddedNodeForURL(url)); |
| + ASSERT_EQ(n1, model_->GetMostRecentlyAddedUserNodeForURL(url)); |
| // swap 1 and 2, then check again. |
| SwapDateAdded(n1, n2); |
| - ASSERT_EQ(n2, model_->GetMostRecentlyAddedNodeForURL(url)); |
| + ASSERT_EQ(n2, model_->GetMostRecentlyAddedUserNodeForURL(url)); |
| } |
| // Makes sure GetBookmarks removes duplicates. |
| @@ -1097,6 +1114,62 @@ TEST_F(BookmarkModelTest, MultipleExtensiveChangesObserver) { |
| AssertExtensiveChangesObserverCount(1, 1); |
| } |
| +TEST_F(BookmarkModelTest, IsBookmarked) { |
| + // Verifies that IsBookmarked is true if any bookmark matches the given URL, |
|
sky
2014/06/06 16:29:47
nit: move comments like this above the TEST_F. See
Joao da Silva
2014/06/06 17:46:40
Done.
|
| + // and that IsBookmarkedByUser is true only if at least one of the matching |
| + // bookmarks can be edited by the user. |
| + |
| + // Reload the model with an extra node that is not editable by the user. |
| + BookmarkPermanentNode* extra_node = ReloadModeWithExtraNode(); |
| + |
| + // "google.com" is a "user" bookmark. |
| + model_->AddURL(model_->other_node(), 0, base::ASCIIToUTF16("User"), |
| + GURL("http://google.com")); |
| + // "youtube.com" is not. |
| + model_->AddURL(extra_node, 0, base::ASCIIToUTF16("Extra"), |
| + GURL("http://youtube.com")); |
| + |
| + EXPECT_TRUE(model_->IsBookmarked(GURL("http://google.com"))); |
| + EXPECT_TRUE(model_->IsBookmarked(GURL("http://youtube.com"))); |
| + EXPECT_FALSE(model_->IsBookmarked(GURL("http://reddit.com"))); |
| + |
| + EXPECT_TRUE(bookmark_utils::IsBookmarkedByUser(model_.get(), |
| + GURL("http://google.com"))); |
| + EXPECT_FALSE(bookmark_utils::IsBookmarkedByUser(model_.get(), |
| + GURL("http://youtube.com"))); |
| + EXPECT_FALSE(bookmark_utils::IsBookmarkedByUser(model_.get(), |
| + GURL("http://reddit.com"))); |
| +} |
| + |
| +TEST_F(BookmarkModelTest, GetMostRecentlyAddedUserNodeForURLSkipsManagedNodes) { |
| + // Verifies that GetMostRecentlyAddedUserNodeForURL skips bookmarks that |
| + // are not owned by the user. |
| + |
| + // Reload the model with an extra node that is not editable by the user. |
| + BookmarkPermanentNode* extra_node = ReloadModeWithExtraNode(); |
| + |
| + const base::string16 title = base::ASCIIToUTF16("Title"); |
| + const BookmarkNode* user_parent = model_->other_node(); |
| + const BookmarkNode* managed_parent = extra_node; |
| + const GURL url("http://google.com"); |
| + |
| + // |url| is not bookmarked yet. |
| + EXPECT_TRUE(model_->GetMostRecentlyAddedUserNodeForURL(url) == NULL); |
| + |
| + // Having a managed node doesn't count. |
| + model_->AddURL(managed_parent, 0, title, url); |
| + EXPECT_TRUE(model_->GetMostRecentlyAddedUserNodeForURL(url) == NULL); |
| + |
| + // Now add a user node. |
| + const BookmarkNode* user = model_->AddURL(user_parent, 0, title, url); |
| + EXPECT_EQ(user, model_->GetMostRecentlyAddedUserNodeForURL(url)); |
| + |
| + // Having a more recent managed node doesn't count either. |
| + const BookmarkNode* managed = model_->AddURL(managed_parent, 0, title, url); |
| + EXPECT_GT(managed->date_added(), user->date_added()); |
| + EXPECT_EQ(user, model_->GetMostRecentlyAddedUserNodeForURL(url)); |
| +} |
| + |
| TEST(BookmarkNodeTest, NodeMetaInfo) { |
| GURL url; |
| BookmarkNode node(url); |