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

Side by Side Diff: chrome/browser/extensions/api/bookmarks/bookmark_api_helpers_unittest.cc

Issue 1233673002: Fix componentization of chrome/browser/bookmarks (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix "gn check" and compilation on Mac Created 5 years, 5 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 unified diff | Download patch
OLDNEW
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/string_number_conversions.h" 8 #include "base/strings/string_number_conversions.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "base/values.h" 10 #include "base/values.h"
11 #include "chrome/browser/bookmarks/bookmark_model_factory.h" 11 #include "chrome/browser/bookmarks/bookmark_model_factory.h"
12 #include "chrome/browser/bookmarks/chrome_bookmark_client.h" 12 #include "chrome/browser/bookmarks/managed_bookmark_service_factory.h"
13 #include "chrome/browser/bookmarks/chrome_bookmark_client_factory.h"
14 #include "chrome/browser/extensions/api/bookmarks/bookmark_api_constants.h" 13 #include "chrome/browser/extensions/api/bookmarks/bookmark_api_constants.h"
15 #include "chrome/common/extensions/api/bookmarks.h" 14 #include "chrome/common/extensions/api/bookmarks.h"
16 #include "chrome/test/base/testing_profile.h" 15 #include "chrome/test/base/testing_profile.h"
17 #include "components/bookmarks/browser/bookmark_model.h" 16 #include "components/bookmarks/browser/bookmark_model.h"
17 #include "components/bookmarks/managed/managed_bookmark_service.h"
18 #include "components/bookmarks/test/bookmark_test_helpers.h" 18 #include "components/bookmarks/test/bookmark_test_helpers.h"
19 #include "content/public/test/test_browser_thread_bundle.h" 19 #include "content/public/test/test_browser_thread_bundle.h"
20 #include "testing/gtest/include/gtest/gtest.h" 20 #include "testing/gtest/include/gtest/gtest.h"
21 21
22 using bookmarks::BookmarkModel; 22 using bookmarks::BookmarkModel;
23 using bookmarks::BookmarkNode; 23 using bookmarks::BookmarkNode;
24 24
25 namespace extensions { 25 namespace extensions {
26 26
27 namespace keys = bookmark_api_constants; 27 namespace keys = bookmark_api_constants;
28 using api::bookmarks::BookmarkTreeNode; 28 using api::bookmarks::BookmarkTreeNode;
29 29
30 namespace bookmark_api_helpers { 30 namespace bookmark_api_helpers {
31 31
32 class ExtensionBookmarksTest : public testing::Test { 32 class ExtensionBookmarksTest : public testing::Test {
33 public: 33 public:
34 ExtensionBookmarksTest() 34 ExtensionBookmarksTest()
35 : client_(NULL), model_(NULL), node_(NULL), node2_(NULL), folder_(NULL) {} 35 : managed_(NULL),
36 model_(NULL),
37 node_(NULL),
38 node2_(NULL),
39 folder_(NULL) {}
36 40
37 void SetUp() override { 41 void SetUp() override {
38 profile_.CreateBookmarkModel(false); 42 profile_.CreateBookmarkModel(false);
39 model_ = BookmarkModelFactory::GetForProfile(&profile_); 43 model_ = BookmarkModelFactory::GetForProfile(&profile_);
40 client_ = ChromeBookmarkClientFactory::GetForProfile(&profile_); 44 managed_ = ManagedBookmarkServiceFactory::GetForProfile(&profile_);
41 bookmarks::test::WaitForBookmarkModelToLoad(model_); 45 bookmarks::test::WaitForBookmarkModelToLoad(model_);
42 46
43 node_ = model_->AddURL(model_->other_node(), 0, base::ASCIIToUTF16("Digg"), 47 node_ = model_->AddURL(model_->other_node(), 0, base::ASCIIToUTF16("Digg"),
44 GURL("http://www.reddit.com")); 48 GURL("http://www.reddit.com"));
45 model_->SetNodeMetaInfo(node_, "some_key1", "some_value1"); 49 model_->SetNodeMetaInfo(node_, "some_key1", "some_value1");
46 model_->SetNodeMetaInfo(node_, "some_key2", "some_value2"); 50 model_->SetNodeMetaInfo(node_, "some_key2", "some_value2");
47 model_->AddURL(model_->other_node(), 0, base::ASCIIToUTF16("News"), 51 model_->AddURL(model_->other_node(), 0, base::ASCIIToUTF16("News"),
48 GURL("http://www.foxnews.com")); 52 GURL("http://www.foxnews.com"));
49 folder_ = model_->AddFolder( 53 folder_ = model_->AddFolder(
50 model_->other_node(), 0, base::ASCIIToUTF16("outer folder")); 54 model_->other_node(), 0, base::ASCIIToUTF16("outer folder"));
51 model_->SetNodeMetaInfo(folder_, "some_key1", "some_value1"); 55 model_->SetNodeMetaInfo(folder_, "some_key1", "some_value1");
52 model_->AddFolder(folder_, 0, base::ASCIIToUTF16("inner folder 1")); 56 model_->AddFolder(folder_, 0, base::ASCIIToUTF16("inner folder 1"));
53 model_->AddFolder(folder_, 0, base::ASCIIToUTF16("inner folder 2")); 57 model_->AddFolder(folder_, 0, base::ASCIIToUTF16("inner folder 2"));
54 node2_ = model_->AddURL( 58 node2_ = model_->AddURL(
55 folder_, 0, base::ASCIIToUTF16("Digg"), GURL("http://reddit.com")); 59 folder_, 0, base::ASCIIToUTF16("Digg"), GURL("http://reddit.com"));
56 model_->SetNodeMetaInfo(node2_, "some_key2", "some_value2"); 60 model_->SetNodeMetaInfo(node2_, "some_key2", "some_value2");
57 model_->AddURL( 61 model_->AddURL(
58 folder_, 0, base::ASCIIToUTF16("CNet"), GURL("http://cnet.com")); 62 folder_, 0, base::ASCIIToUTF16("CNet"), GURL("http://cnet.com"));
59 } 63 }
60 64
61 content::TestBrowserThreadBundle thread_bundle_; 65 content::TestBrowserThreadBundle thread_bundle_;
62 TestingProfile profile_; 66 TestingProfile profile_;
63 ChromeBookmarkClient* client_; 67 bookmarks::ManagedBookmarkService* managed_;
64 BookmarkModel* model_; 68 BookmarkModel* model_;
65 const BookmarkNode* node_; 69 const BookmarkNode* node_;
66 const BookmarkNode* node2_; 70 const BookmarkNode* node2_;
67 const BookmarkNode* folder_; 71 const BookmarkNode* folder_;
68 }; 72 };
69 73
70 TEST_F(ExtensionBookmarksTest, GetFullTreeFromRoot) { 74 TEST_F(ExtensionBookmarksTest, GetFullTreeFromRoot) {
71 scoped_ptr<BookmarkTreeNode> tree( 75 scoped_ptr<BookmarkTreeNode> tree(
72 GetBookmarkTreeNode(client_, 76 GetBookmarkTreeNode(managed_,
73 model_->other_node(), 77 model_->other_node(),
74 true, // Recurse. 78 true, // Recurse.
75 false)); // Not only folders. 79 false)); // Not only folders.
76 ASSERT_EQ(3U, tree->children->size()); 80 ASSERT_EQ(3U, tree->children->size());
77 } 81 }
78 82
79 TEST_F(ExtensionBookmarksTest, GetFoldersOnlyFromRoot) { 83 TEST_F(ExtensionBookmarksTest, GetFoldersOnlyFromRoot) {
80 scoped_ptr<BookmarkTreeNode> tree( 84 scoped_ptr<BookmarkTreeNode> tree(
81 GetBookmarkTreeNode(client_, 85 GetBookmarkTreeNode(managed_,
82 model_->other_node(), 86 model_->other_node(),
83 true, // Recurse. 87 true, // Recurse.
84 true)); // Only folders. 88 true)); // Only folders.
85 ASSERT_EQ(1U, tree->children->size()); 89 ASSERT_EQ(1U, tree->children->size());
86 } 90 }
87 91
88 TEST_F(ExtensionBookmarksTest, GetSubtree) { 92 TEST_F(ExtensionBookmarksTest, GetSubtree) {
89 scoped_ptr<BookmarkTreeNode> tree( 93 scoped_ptr<BookmarkTreeNode> tree(
90 GetBookmarkTreeNode(client_, 94 GetBookmarkTreeNode(managed_,
91 folder_, 95 folder_,
92 true, // Recurse. 96 true, // Recurse.
93 false)); // Not only folders. 97 false)); // Not only folders.
94 ASSERT_EQ(4U, tree->children->size()); 98 ASSERT_EQ(4U, tree->children->size());
95 linked_ptr<BookmarkTreeNode> digg = tree->children->at(1); 99 linked_ptr<BookmarkTreeNode> digg = tree->children->at(1);
96 ASSERT_TRUE(digg.get()); 100 ASSERT_TRUE(digg.get());
97 ASSERT_EQ("Digg", digg->title); 101 ASSERT_EQ("Digg", digg->title);
98 } 102 }
99 103
100 TEST_F(ExtensionBookmarksTest, GetSubtreeFoldersOnly) { 104 TEST_F(ExtensionBookmarksTest, GetSubtreeFoldersOnly) {
101 scoped_ptr<BookmarkTreeNode> tree( 105 scoped_ptr<BookmarkTreeNode> tree(
102 GetBookmarkTreeNode(client_, 106 GetBookmarkTreeNode(managed_,
103 folder_, 107 folder_,
104 true, // Recurse. 108 true, // Recurse.
105 true)); // Only folders. 109 true)); // Only folders.
106 ASSERT_EQ(2U, tree->children->size()); 110 ASSERT_EQ(2U, tree->children->size());
107 linked_ptr<BookmarkTreeNode> inner_folder = tree->children->at(1); 111 linked_ptr<BookmarkTreeNode> inner_folder = tree->children->at(1);
108 ASSERT_TRUE(inner_folder.get()); 112 ASSERT_TRUE(inner_folder.get());
109 ASSERT_EQ("inner folder 1", inner_folder->title); 113 ASSERT_EQ("inner folder 1", inner_folder->title);
110 } 114 }
111 115
112 TEST_F(ExtensionBookmarksTest, GetModifiableNode) { 116 TEST_F(ExtensionBookmarksTest, GetModifiableNode) {
113 scoped_ptr<BookmarkTreeNode> tree( 117 scoped_ptr<BookmarkTreeNode> tree(
114 GetBookmarkTreeNode(client_, 118 GetBookmarkTreeNode(managed_,
115 node_, 119 node_,
116 false, // Recurse. 120 false, // Recurse.
117 false)); // Only folders. 121 false)); // Only folders.
118 EXPECT_EQ("Digg", tree->title); 122 EXPECT_EQ("Digg", tree->title);
119 ASSERT_TRUE(tree->url); 123 ASSERT_TRUE(tree->url);
120 EXPECT_EQ("http://www.reddit.com/", *tree->url); 124 EXPECT_EQ("http://www.reddit.com/", *tree->url);
121 EXPECT_EQ(api::bookmarks::BOOKMARK_TREE_NODE_UNMODIFIABLE_NONE, 125 EXPECT_EQ(api::bookmarks::BOOKMARK_TREE_NODE_UNMODIFIABLE_NONE,
122 tree->unmodifiable); 126 tree->unmodifiable);
123 } 127 }
124 128
125 TEST_F(ExtensionBookmarksTest, GetManagedNode) { 129 TEST_F(ExtensionBookmarksTest, GetManagedNode) {
126 const BookmarkNode* managed_bookmark = 130 const BookmarkNode* managed_bookmark =
127 model_->AddURL(client_->managed_node(), 131 model_->AddURL(managed_->managed_node(),
128 0, 132 0,
129 base::ASCIIToUTF16("Chromium"), 133 base::ASCIIToUTF16("Chromium"),
130 GURL("http://www.chromium.org/")); 134 GURL("http://www.chromium.org/"));
131 scoped_ptr<BookmarkTreeNode> tree( 135 scoped_ptr<BookmarkTreeNode> tree(
132 GetBookmarkTreeNode(client_, 136 GetBookmarkTreeNode(managed_,
133 managed_bookmark, 137 managed_bookmark,
134 false, // Recurse. 138 false, // Recurse.
135 false)); // Only folders. 139 false)); // Only folders.
136 EXPECT_EQ("Chromium", tree->title); 140 EXPECT_EQ("Chromium", tree->title);
137 EXPECT_EQ("http://www.chromium.org/", *tree->url); 141 EXPECT_EQ("http://www.chromium.org/", *tree->url);
138 EXPECT_EQ(api::bookmarks::BOOKMARK_TREE_NODE_UNMODIFIABLE_MANAGED, 142 EXPECT_EQ(api::bookmarks::BOOKMARK_TREE_NODE_UNMODIFIABLE_MANAGED,
139 tree->unmodifiable); 143 tree->unmodifiable);
140 } 144 }
141 145
142 TEST_F(ExtensionBookmarksTest, RemoveNodeInvalidId) { 146 TEST_F(ExtensionBookmarksTest, RemoveNodeInvalidId) {
143 int64 invalid_id = model_->next_node_id(); 147 int64 invalid_id = model_->next_node_id();
144 std::string error; 148 std::string error;
145 EXPECT_FALSE(RemoveNode(model_, client_, invalid_id, true, &error)); 149 EXPECT_FALSE(RemoveNode(model_, managed_, invalid_id, true, &error));
146 EXPECT_EQ(keys::kNoNodeError, error); 150 EXPECT_EQ(keys::kNoNodeError, error);
147 } 151 }
148 152
149 TEST_F(ExtensionBookmarksTest, RemoveNodePermanent) { 153 TEST_F(ExtensionBookmarksTest, RemoveNodePermanent) {
150 std::string error; 154 std::string error;
151 EXPECT_FALSE( 155 EXPECT_FALSE(
152 RemoveNode(model_, client_, model_->other_node()->id(), true, &error)); 156 RemoveNode(model_, managed_, model_->other_node()->id(), true, &error));
153 EXPECT_EQ(keys::kModifySpecialError, error); 157 EXPECT_EQ(keys::kModifySpecialError, error);
154 } 158 }
155 159
156 TEST_F(ExtensionBookmarksTest, RemoveNodeManaged) { 160 TEST_F(ExtensionBookmarksTest, RemoveNodeManaged) {
157 const BookmarkNode* managed_bookmark = 161 const BookmarkNode* managed_bookmark =
158 model_->AddURL(client_->managed_node(), 162 model_->AddURL(managed_->managed_node(),
159 0, 163 0,
160 base::ASCIIToUTF16("Chromium"), 164 base::ASCIIToUTF16("Chromium"),
161 GURL("http://www.chromium.org")); 165 GURL("http://www.chromium.org"));
162 std::string error; 166 std::string error;
163 EXPECT_FALSE( 167 EXPECT_FALSE(
164 RemoveNode(model_, client_, managed_bookmark->id(), true, &error)); 168 RemoveNode(model_, managed_, managed_bookmark->id(), true, &error));
165 EXPECT_EQ(keys::kModifyManagedError, error); 169 EXPECT_EQ(keys::kModifyManagedError, error);
166 } 170 }
167 171
168 TEST_F(ExtensionBookmarksTest, RemoveNodeNotRecursive) { 172 TEST_F(ExtensionBookmarksTest, RemoveNodeNotRecursive) {
169 std::string error; 173 std::string error;
170 EXPECT_FALSE(RemoveNode(model_, client_, folder_->id(), false, &error)); 174 EXPECT_FALSE(RemoveNode(model_, managed_, folder_->id(), false, &error));
171 EXPECT_EQ(keys::kFolderNotEmptyError, error); 175 EXPECT_EQ(keys::kFolderNotEmptyError, error);
172 } 176 }
173 177
174 TEST_F(ExtensionBookmarksTest, RemoveNodeRecursive) { 178 TEST_F(ExtensionBookmarksTest, RemoveNodeRecursive) {
175 EXPECT_EQ(3, model_->other_node()->child_count()); 179 EXPECT_EQ(3, model_->other_node()->child_count());
176 std::string error; 180 std::string error;
177 EXPECT_TRUE(RemoveNode(model_, client_, folder_->id(), true, &error)); 181 EXPECT_TRUE(RemoveNode(model_, managed_, folder_->id(), true, &error));
178 EXPECT_EQ(2, model_->other_node()->child_count()); 182 EXPECT_EQ(2, model_->other_node()->child_count());
179 } 183 }
180 184
181 TEST_F(ExtensionBookmarksTest, GetMetaInfo) { 185 TEST_F(ExtensionBookmarksTest, GetMetaInfo) {
182 base::DictionaryValue id_to_meta_info_map; 186 base::DictionaryValue id_to_meta_info_map;
183 GetMetaInfo(*model_->other_node(), &id_to_meta_info_map); 187 GetMetaInfo(*model_->other_node(), &id_to_meta_info_map);
184 EXPECT_EQ(8u, id_to_meta_info_map.size()); 188 EXPECT_EQ(8u, id_to_meta_info_map.size());
185 189
186 // Verify top level node. 190 // Verify top level node.
187 const base::Value* value = NULL; 191 const base::Value* value = NULL;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 string_value.clear(); 236 string_value.clear();
233 EXPECT_FALSE(dictionary_value->GetString("some_key1", &string_value)); 237 EXPECT_FALSE(dictionary_value->GetString("some_key1", &string_value));
234 EXPECT_EQ("", string_value); 238 EXPECT_EQ("", string_value);
235 EXPECT_TRUE(dictionary_value->GetString("some_key2", &string_value)); 239 EXPECT_TRUE(dictionary_value->GetString("some_key2", &string_value));
236 EXPECT_EQ("some_value2", string_value); 240 EXPECT_EQ("some_value2", string_value);
237 241
238 } 242 }
239 243
240 } // namespace bookmark_api_helpers 244 } // namespace bookmark_api_helpers
241 } // namespace extensions 245 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698