Index: chrome/browser/extensions/api/bookmarks/bookmark_api_helpers_unittest.cc |
diff --git a/chrome/browser/extensions/api/bookmarks/bookmark_api_helpers_unittest.cc b/chrome/browser/extensions/api/bookmarks/bookmark_api_helpers_unittest.cc |
index fef990f0d90aec2c204d2bfa4f4a39c29e27ba91..15dfb90eb1b9d1dede7ef08ebe92d96367156768 100644 |
--- a/chrome/browser/extensions/api/bookmarks/bookmark_api_helpers_unittest.cc |
+++ b/chrome/browser/extensions/api/bookmarks/bookmark_api_helpers_unittest.cc |
@@ -26,7 +26,8 @@ namespace bookmark_api_helpers { |
class ExtensionBookmarksTest : public testing::Test { |
public: |
- ExtensionBookmarksTest() : client_(NULL), model_(NULL), folder_(NULL) {} |
+ ExtensionBookmarksTest() |
+ : client_(NULL), model_(NULL), node_(NULL), folder_(NULL) {} |
virtual void SetUp() OVERRIDE { |
profile_.CreateBookmarkModel(false); |
@@ -35,8 +36,8 @@ class ExtensionBookmarksTest : public testing::Test { |
model_ = client_->model(); |
test::WaitForBookmarkModelToLoad(model_); |
- model_->AddURL(model_->other_node(), 0, base::ASCIIToUTF16("Digg"), |
- GURL("http://www.reddit.com")); |
+ node_ = model_->AddURL(model_->other_node(), 0, base::ASCIIToUTF16("Digg"), |
+ GURL("http://www.reddit.com")); |
model_->AddURL(model_->other_node(), 0, base::ASCIIToUTF16("News"), |
GURL("http://www.foxnews.com")); |
folder_ = model_->AddFolder( |
@@ -53,12 +54,14 @@ class ExtensionBookmarksTest : public testing::Test { |
TestingProfile profile_; |
ChromeBookmarkClient* client_; |
BookmarkModel* model_; |
+ const BookmarkNode* node_; |
const BookmarkNode* folder_; |
}; |
TEST_F(ExtensionBookmarksTest, GetFullTreeFromRoot) { |
scoped_ptr<BookmarkTreeNode> tree( |
- GetBookmarkTreeNode(model_->other_node(), |
+ GetBookmarkTreeNode(client_, |
+ model_->other_node(), |
true, // Recurse. |
false)); // Not only folders. |
ASSERT_EQ(3U, tree->children->size()); |
@@ -66,7 +69,8 @@ TEST_F(ExtensionBookmarksTest, GetFullTreeFromRoot) { |
TEST_F(ExtensionBookmarksTest, GetFoldersOnlyFromRoot) { |
scoped_ptr<BookmarkTreeNode> tree( |
- GetBookmarkTreeNode(model_->other_node(), |
+ GetBookmarkTreeNode(client_, |
+ model_->other_node(), |
true, // Recurse. |
true)); // Only folders. |
ASSERT_EQ(1U, tree->children->size()); |
@@ -74,7 +78,8 @@ TEST_F(ExtensionBookmarksTest, GetFoldersOnlyFromRoot) { |
TEST_F(ExtensionBookmarksTest, GetSubtree) { |
scoped_ptr<BookmarkTreeNode> tree( |
- GetBookmarkTreeNode(folder_, |
+ GetBookmarkTreeNode(client_, |
+ folder_, |
true, // Recurse. |
false)); // Not only folders. |
ASSERT_EQ(4U, tree->children->size()); |
@@ -85,7 +90,8 @@ TEST_F(ExtensionBookmarksTest, GetSubtree) { |
TEST_F(ExtensionBookmarksTest, GetSubtreeFoldersOnly) { |
scoped_ptr<BookmarkTreeNode> tree( |
- GetBookmarkTreeNode(folder_, |
+ GetBookmarkTreeNode(client_, |
+ folder_, |
true, // Recurse. |
true)); // Only folders. |
ASSERT_EQ(2U, tree->children->size()); |
@@ -94,6 +100,34 @@ TEST_F(ExtensionBookmarksTest, GetSubtreeFoldersOnly) { |
ASSERT_EQ("inner folder 1", inner_folder->title); |
} |
+TEST_F(ExtensionBookmarksTest, GetModifiableNode) { |
+ scoped_ptr<BookmarkTreeNode> tree( |
+ GetBookmarkTreeNode(client_, |
+ node_, |
+ false, // Recurse. |
+ false)); // Only folders. |
+ EXPECT_EQ("Digg", tree->title); |
+ ASSERT_TRUE(tree->url); |
+ EXPECT_EQ("http://www.reddit.com/", *tree->url); |
+ EXPECT_EQ(BookmarkTreeNode::UNMODIFIABLE_NONE, tree->unmodifiable); |
+} |
+ |
+TEST_F(ExtensionBookmarksTest, GetManagedNode) { |
+ const BookmarkNode* managed_bookmark = |
+ model_->AddURL(client_->managed_node(), |
+ 0, |
+ base::ASCIIToUTF16("Chromium"), |
+ GURL("http://www.chromium.org/")); |
+ scoped_ptr<BookmarkTreeNode> tree( |
+ GetBookmarkTreeNode(client_, |
+ managed_bookmark, |
+ false, // Recurse. |
+ false)); // Only folders. |
+ EXPECT_EQ("Chromium", tree->title); |
+ EXPECT_EQ("http://www.chromium.org/", *tree->url); |
+ EXPECT_EQ(BookmarkTreeNode::UNMODIFIABLE_MANAGED, tree->unmodifiable); |
+} |
+ |
TEST_F(ExtensionBookmarksTest, RemoveNodeInvalidId) { |
int64 invalid_id = model_->next_node_id(); |
std::string error; |