OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/bookmarks/chrome_bookmark_client.h" | 5 #include "chrome/browser/bookmarks/chrome_bookmark_client.h" |
6 | 6 |
7 #include "base/macros.h" | 7 #include "base/macros.h" |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.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" |
(...skipping 16 matching lines...) Expand all Loading... |
27 using testing::Mock; | 27 using testing::Mock; |
28 using testing::_; | 28 using testing::_; |
29 | 29 |
30 class ChromeBookmarkClientTest : public testing::Test { | 30 class ChromeBookmarkClientTest : public testing::Test { |
31 public: | 31 public: |
32 ChromeBookmarkClientTest() : client_(NULL), model_(NULL) {} | 32 ChromeBookmarkClientTest() : client_(NULL), model_(NULL) {} |
33 virtual ~ChromeBookmarkClientTest() {} | 33 virtual ~ChromeBookmarkClientTest() {} |
34 | 34 |
35 virtual void SetUp() OVERRIDE { | 35 virtual void SetUp() OVERRIDE { |
36 prefs_ = profile_.GetTestingPrefService(); | 36 prefs_ = profile_.GetTestingPrefService(); |
37 ASSERT_FALSE(prefs_->HasPrefPath(prefs::kManagedBookmarks)); | 37 ASSERT_FALSE(prefs_->HasPrefPath(bookmarks::prefs::kManagedBookmarks)); |
38 | 38 |
39 prefs_->SetManagedPref(prefs::kManagedBookmarks, CreateTestTree()); | 39 prefs_->SetManagedPref(bookmarks::prefs::kManagedBookmarks, |
| 40 CreateTestTree()); |
40 ResetModel(); | 41 ResetModel(); |
41 | 42 |
42 // The managed node always exists. | 43 // The managed node always exists. |
43 ASSERT_TRUE(client_->managed_node()); | 44 ASSERT_TRUE(client_->managed_node()); |
44 ASSERT_TRUE(client_->managed_node()->parent() == model_->root_node()); | 45 ASSERT_TRUE(client_->managed_node()->parent() == model_->root_node()); |
45 EXPECT_NE(-1, model_->root_node()->GetIndexOf(client_->managed_node())); | 46 EXPECT_NE(-1, model_->root_node()->GetIndexOf(client_->managed_node())); |
46 } | 47 } |
47 | 48 |
48 virtual void TearDown() OVERRIDE { | 49 virtual void TearDown() OVERRIDE { |
49 model_->RemoveObserver(&observer_); | 50 model_->RemoveObserver(&observer_); |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
133 ChromeBookmarkClient* client_; | 134 ChromeBookmarkClient* client_; |
134 BookmarkModel* model_; | 135 BookmarkModel* model_; |
135 | 136 |
136 DISALLOW_COPY_AND_ASSIGN(ChromeBookmarkClientTest); | 137 DISALLOW_COPY_AND_ASSIGN(ChromeBookmarkClientTest); |
137 }; | 138 }; |
138 | 139 |
139 TEST_F(ChromeBookmarkClientTest, EmptyManagedNode) { | 140 TEST_F(ChromeBookmarkClientTest, EmptyManagedNode) { |
140 // Verifies that the managed node is empty and invisible when the policy is | 141 // Verifies that the managed node is empty and invisible when the policy is |
141 // not set. | 142 // not set. |
142 model_->RemoveObserver(&observer_); | 143 model_->RemoveObserver(&observer_); |
143 prefs_->RemoveManagedPref(prefs::kManagedBookmarks); | 144 prefs_->RemoveManagedPref(bookmarks::prefs::kManagedBookmarks); |
144 ResetModel(); | 145 ResetModel(); |
145 | 146 |
146 ASSERT_TRUE(client_->managed_node()); | 147 ASSERT_TRUE(client_->managed_node()); |
147 EXPECT_TRUE(client_->managed_node()->empty()); | 148 EXPECT_TRUE(client_->managed_node()->empty()); |
148 EXPECT_FALSE(client_->managed_node()->IsVisible()); | 149 EXPECT_FALSE(client_->managed_node()->IsVisible()); |
149 } | 150 } |
150 | 151 |
151 TEST_F(ChromeBookmarkClientTest, LoadInitial) { | 152 TEST_F(ChromeBookmarkClientTest, LoadInitial) { |
152 // Verifies that the initial load picks up the initial policy too. | 153 // Verifies that the initial load picks up the initial policy too. |
153 EXPECT_TRUE(model_->bookmark_bar_node()->empty()); | 154 EXPECT_TRUE(model_->bookmark_bar_node()->empty()); |
154 EXPECT_TRUE(model_->other_node()->empty()); | 155 EXPECT_TRUE(model_->other_node()->empty()); |
155 EXPECT_FALSE(client_->managed_node()->empty()); | 156 EXPECT_FALSE(client_->managed_node()->empty()); |
156 EXPECT_TRUE(client_->managed_node()->IsVisible()); | 157 EXPECT_TRUE(client_->managed_node()->IsVisible()); |
157 | 158 |
158 scoped_ptr<base::DictionaryValue> expected(CreateExpectedTree()); | 159 scoped_ptr<base::DictionaryValue> expected(CreateExpectedTree()); |
159 EXPECT_TRUE(NodeMatchesValue(client_->managed_node(), expected.get())); | 160 EXPECT_TRUE(NodeMatchesValue(client_->managed_node(), expected.get())); |
160 } | 161 } |
161 | 162 |
162 TEST_F(ChromeBookmarkClientTest, SwapNodes) { | 163 TEST_F(ChromeBookmarkClientTest, SwapNodes) { |
163 // Swap the Google bookmark with the Folder. | 164 // Swap the Google bookmark with the Folder. |
164 scoped_ptr<base::ListValue> updated(CreateTestTree()); | 165 scoped_ptr<base::ListValue> updated(CreateTestTree()); |
165 scoped_ptr<base::Value> removed; | 166 scoped_ptr<base::Value> removed; |
166 ASSERT_TRUE(updated->Remove(0, &removed)); | 167 ASSERT_TRUE(updated->Remove(0, &removed)); |
167 updated->Append(removed.release()); | 168 updated->Append(removed.release()); |
168 | 169 |
169 // These two nodes should just be swapped. | 170 // These two nodes should just be swapped. |
170 const BookmarkNode* parent = client_->managed_node(); | 171 const BookmarkNode* parent = client_->managed_node(); |
171 EXPECT_CALL(observer_, BookmarkNodeMoved(model_, parent, 1, parent, 0)); | 172 EXPECT_CALL(observer_, BookmarkNodeMoved(model_, parent, 1, parent, 0)); |
172 prefs_->SetManagedPref(prefs::kManagedBookmarks, updated->DeepCopy()); | 173 prefs_->SetManagedPref(bookmarks::prefs::kManagedBookmarks, |
| 174 updated->DeepCopy()); |
173 Mock::VerifyAndClearExpectations(&observer_); | 175 Mock::VerifyAndClearExpectations(&observer_); |
174 | 176 |
175 // Verify the final tree. | 177 // Verify the final tree. |
176 scoped_ptr<base::DictionaryValue> expected( | 178 scoped_ptr<base::DictionaryValue> expected( |
177 CreateFolder(GetManagedFolderTitle(), updated.release())); | 179 CreateFolder(GetManagedFolderTitle(), updated.release())); |
178 EXPECT_TRUE(NodeMatchesValue(client_->managed_node(), expected.get())); | 180 EXPECT_TRUE(NodeMatchesValue(client_->managed_node(), expected.get())); |
179 } | 181 } |
180 | 182 |
181 TEST_F(ChromeBookmarkClientTest, RemoveNode) { | 183 TEST_F(ChromeBookmarkClientTest, RemoveNode) { |
182 // Remove the Folder. | 184 // Remove the Folder. |
183 scoped_ptr<base::ListValue> updated(CreateTestTree()); | 185 scoped_ptr<base::ListValue> updated(CreateTestTree()); |
184 ASSERT_TRUE(updated->Remove(1, NULL)); | 186 ASSERT_TRUE(updated->Remove(1, NULL)); |
185 | 187 |
186 const BookmarkNode* parent = client_->managed_node(); | 188 const BookmarkNode* parent = client_->managed_node(); |
187 EXPECT_CALL(observer_, BookmarkNodeRemoved(model_, parent, 1, _, _)); | 189 EXPECT_CALL(observer_, BookmarkNodeRemoved(model_, parent, 1, _, _)); |
188 prefs_->SetManagedPref(prefs::kManagedBookmarks, updated->DeepCopy()); | 190 prefs_->SetManagedPref(bookmarks::prefs::kManagedBookmarks, |
| 191 updated->DeepCopy()); |
189 Mock::VerifyAndClearExpectations(&observer_); | 192 Mock::VerifyAndClearExpectations(&observer_); |
190 | 193 |
191 // Verify the final tree. | 194 // Verify the final tree. |
192 scoped_ptr<base::DictionaryValue> expected( | 195 scoped_ptr<base::DictionaryValue> expected( |
193 CreateFolder(GetManagedFolderTitle(), updated.release())); | 196 CreateFolder(GetManagedFolderTitle(), updated.release())); |
194 EXPECT_TRUE(NodeMatchesValue(client_->managed_node(), expected.get())); | 197 EXPECT_TRUE(NodeMatchesValue(client_->managed_node(), expected.get())); |
195 } | 198 } |
196 | 199 |
197 TEST_F(ChromeBookmarkClientTest, CreateNewNodes) { | 200 TEST_F(ChromeBookmarkClientTest, CreateNewNodes) { |
198 // Put all the nodes inside another folder. | 201 // Put all the nodes inside another folder. |
199 scoped_ptr<base::ListValue> updated(new base::ListValue); | 202 scoped_ptr<base::ListValue> updated(new base::ListValue); |
200 updated->Append(CreateFolder("Container", CreateTestTree())); | 203 updated->Append(CreateFolder("Container", CreateTestTree())); |
201 | 204 |
202 EXPECT_CALL(observer_, BookmarkNodeAdded(model_, _, _)).Times(5); | 205 EXPECT_CALL(observer_, BookmarkNodeAdded(model_, _, _)).Times(5); |
203 // The remaining nodes have been pushed to positions 1 and 2; they'll both be | 206 // The remaining nodes have been pushed to positions 1 and 2; they'll both be |
204 // removed when at position 1. | 207 // removed when at position 1. |
205 const BookmarkNode* parent = client_->managed_node(); | 208 const BookmarkNode* parent = client_->managed_node(); |
206 EXPECT_CALL(observer_, BookmarkNodeRemoved(model_, parent, 1, _, _)) | 209 EXPECT_CALL(observer_, BookmarkNodeRemoved(model_, parent, 1, _, _)) |
207 .Times(2); | 210 .Times(2); |
208 prefs_->SetManagedPref(prefs::kManagedBookmarks, updated->DeepCopy()); | 211 prefs_->SetManagedPref(bookmarks::prefs::kManagedBookmarks, |
| 212 updated->DeepCopy()); |
209 Mock::VerifyAndClearExpectations(&observer_); | 213 Mock::VerifyAndClearExpectations(&observer_); |
210 | 214 |
211 // Verify the final tree. | 215 // Verify the final tree. |
212 scoped_ptr<base::DictionaryValue> expected( | 216 scoped_ptr<base::DictionaryValue> expected( |
213 CreateFolder(GetManagedFolderTitle(), updated.release())); | 217 CreateFolder(GetManagedFolderTitle(), updated.release())); |
214 EXPECT_TRUE(NodeMatchesValue(client_->managed_node(), expected.get())); | 218 EXPECT_TRUE(NodeMatchesValue(client_->managed_node(), expected.get())); |
215 } | 219 } |
216 | 220 |
217 TEST_F(ChromeBookmarkClientTest, RemoveAllUserBookmarks) { | 221 TEST_F(ChromeBookmarkClientTest, RemoveAllUserBookmarks) { |
218 // Remove the policy. | 222 // Remove the policy. |
219 const BookmarkNode* parent = client_->managed_node(); | 223 const BookmarkNode* parent = client_->managed_node(); |
220 EXPECT_CALL(observer_, BookmarkNodeRemoved(model_, parent, 0, _, _)) | 224 EXPECT_CALL(observer_, BookmarkNodeRemoved(model_, parent, 0, _, _)) |
221 .Times(2); | 225 .Times(2); |
222 prefs_->RemoveManagedPref(prefs::kManagedBookmarks); | 226 prefs_->RemoveManagedPref(bookmarks::prefs::kManagedBookmarks); |
223 Mock::VerifyAndClearExpectations(&observer_); | 227 Mock::VerifyAndClearExpectations(&observer_); |
224 | 228 |
225 EXPECT_TRUE(client_->managed_node()->empty()); | 229 EXPECT_TRUE(client_->managed_node()->empty()); |
226 EXPECT_FALSE(client_->managed_node()->IsVisible()); | 230 EXPECT_FALSE(client_->managed_node()->IsVisible()); |
227 } | 231 } |
228 | 232 |
229 TEST_F(ChromeBookmarkClientTest, IsDescendantOfManagedNode) { | 233 TEST_F(ChromeBookmarkClientTest, IsDescendantOfManagedNode) { |
230 EXPECT_FALSE(client_->IsDescendantOfManagedNode(model_->root_node())); | 234 EXPECT_FALSE(client_->IsDescendantOfManagedNode(model_->root_node())); |
231 EXPECT_FALSE(client_->IsDescendantOfManagedNode(model_->bookmark_bar_node())); | 235 EXPECT_FALSE(client_->IsDescendantOfManagedNode(model_->bookmark_bar_node())); |
232 EXPECT_FALSE(client_->IsDescendantOfManagedNode(model_->other_node())); | 236 EXPECT_FALSE(client_->IsDescendantOfManagedNode(model_->other_node())); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
275 const BookmarkNode* managed_node = client_->managed_node()->GetChild(0); | 279 const BookmarkNode* managed_node = client_->managed_node()->GetChild(0); |
276 ASSERT_TRUE(managed_node); | 280 ASSERT_TRUE(managed_node); |
277 | 281 |
278 std::vector<const BookmarkNode*> nodes; | 282 std::vector<const BookmarkNode*> nodes; |
279 EXPECT_FALSE(client_->HasDescendantsOfManagedNode(nodes)); | 283 EXPECT_FALSE(client_->HasDescendantsOfManagedNode(nodes)); |
280 nodes.push_back(user_node); | 284 nodes.push_back(user_node); |
281 EXPECT_FALSE(client_->HasDescendantsOfManagedNode(nodes)); | 285 EXPECT_FALSE(client_->HasDescendantsOfManagedNode(nodes)); |
282 nodes.push_back(managed_node); | 286 nodes.push_back(managed_node); |
283 EXPECT_TRUE(client_->HasDescendantsOfManagedNode(nodes)); | 287 EXPECT_TRUE(client_->HasDescendantsOfManagedNode(nodes)); |
284 } | 288 } |
OLD | NEW |