OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/extensions/api/bookmarks/bookmark_api_helpers.h" | 5 #include "chrome/browser/extensions/api/bookmarks/bookmark_api_helpers.h" |
6 | 6 |
7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
9 #include "base/values.h" | 9 #include "base/values.h" |
10 #include "chrome/browser/extensions/api/bookmarks/bookmark_api_constants.h" | 10 #include "chrome/browser/extensions/api/bookmarks/bookmark_api_constants.h" |
(...skipping 24 matching lines...) Expand all Loading... |
35 model_->AddURL( | 35 model_->AddURL( |
36 folder_, 0, base::ASCIIToUTF16("Digg"), GURL("http://reddit.com")); | 36 folder_, 0, base::ASCIIToUTF16("Digg"), GURL("http://reddit.com")); |
37 model_->AddURL( | 37 model_->AddURL( |
38 folder_, 0, base::ASCIIToUTF16("CNet"), GURL("http://cnet.com")); | 38 folder_, 0, base::ASCIIToUTF16("CNet"), GURL("http://cnet.com")); |
39 } | 39 } |
40 | 40 |
41 test::TestBookmarkClient client_; | 41 test::TestBookmarkClient client_; |
42 scoped_ptr<BookmarkModel> model_; | 42 scoped_ptr<BookmarkModel> model_; |
43 const BookmarkNode* folder_; | 43 const BookmarkNode* folder_; |
44 }; | 44 }; |
| 45 |
45 TEST_F(ExtensionBookmarksTest, GetFullTreeFromRoot) { | 46 TEST_F(ExtensionBookmarksTest, GetFullTreeFromRoot) { |
46 scoped_ptr<BookmarkTreeNode> tree( | 47 scoped_ptr<BookmarkTreeNode> tree( |
47 GetBookmarkTreeNode(model_->other_node(), | 48 GetBookmarkTreeNode(model_->other_node(), |
48 true, // Recurse. | 49 true, // Recurse. |
49 false)); // Not only folders. | 50 false)); // Not only folders. |
50 ASSERT_EQ(3U, tree->children->size()); | 51 ASSERT_EQ(3U, tree->children->size()); |
51 } | 52 } |
52 | 53 |
53 TEST_F(ExtensionBookmarksTest, GetFoldersOnlyFromRoot) { | 54 TEST_F(ExtensionBookmarksTest, GetFoldersOnlyFromRoot) { |
54 scoped_ptr<BookmarkTreeNode> tree( | 55 scoped_ptr<BookmarkTreeNode> tree( |
(...skipping 18 matching lines...) Expand all Loading... |
73 scoped_ptr<BookmarkTreeNode> tree( | 74 scoped_ptr<BookmarkTreeNode> tree( |
74 GetBookmarkTreeNode(folder_, | 75 GetBookmarkTreeNode(folder_, |
75 true, // Recurse. | 76 true, // Recurse. |
76 true)); // Only folders. | 77 true)); // Only folders. |
77 ASSERT_EQ(2U, tree->children->size()); | 78 ASSERT_EQ(2U, tree->children->size()); |
78 linked_ptr<BookmarkTreeNode> inner_folder = tree->children->at(1); | 79 linked_ptr<BookmarkTreeNode> inner_folder = tree->children->at(1); |
79 ASSERT_TRUE(inner_folder.get()); | 80 ASSERT_TRUE(inner_folder.get()); |
80 ASSERT_EQ("inner folder 1", inner_folder->title); | 81 ASSERT_EQ("inner folder 1", inner_folder->title); |
81 } | 82 } |
82 | 83 |
| 84 TEST_F(ExtensionBookmarksTest, RemoveNodeInvalidId) { |
| 85 int64 invalid_id = model_->next_node_id(); |
| 86 std::string error; |
| 87 EXPECT_FALSE(RemoveNode(model_.get(), invalid_id, true, &error)); |
| 88 EXPECT_EQ(keys::kNoNodeError, error); |
| 89 } |
| 90 |
| 91 TEST_F(ExtensionBookmarksTest, RemoveNodePermanent) { |
| 92 std::string error; |
| 93 EXPECT_FALSE( |
| 94 RemoveNode(model_.get(), model_->other_node()->id(), true, &error)); |
| 95 EXPECT_EQ(keys::kModifySpecialError, error); |
| 96 } |
| 97 |
| 98 TEST_F(ExtensionBookmarksTest, RemoveNodeManaged) { |
| 99 const BookmarkNode* managed_bookmark = |
| 100 model_->AddURL(model_->managed_node(), |
| 101 0, |
| 102 base::ASCIIToUTF16("Chromium"), |
| 103 GURL("http://www.chromium.org")); |
| 104 std::string error; |
| 105 EXPECT_FALSE(RemoveNode(model_.get(), managed_bookmark->id(), true, &error)); |
| 106 EXPECT_EQ(keys::kModifyManagedError, error); |
| 107 } |
| 108 |
| 109 TEST_F(ExtensionBookmarksTest, RemoveNodeNotRecursive) { |
| 110 std::string error; |
| 111 EXPECT_FALSE(RemoveNode(model_.get(), folder_->id(), false, &error)); |
| 112 EXPECT_EQ(keys::kFolderNotEmptyError, error); |
| 113 } |
| 114 |
| 115 TEST_F(ExtensionBookmarksTest, RemoveNodeRecursive) { |
| 116 EXPECT_EQ(3, model_->other_node()->child_count()); |
| 117 std::string error; |
| 118 EXPECT_TRUE(RemoveNode(model_.get(), folder_->id(), true, &error)); |
| 119 EXPECT_EQ(2, model_->other_node()->child_count()); |
| 120 } |
| 121 |
83 } // namespace bookmark_api_helpers | 122 } // namespace bookmark_api_helpers |
84 } // namespace extensions | 123 } // namespace extensions |
OLD | NEW |