| 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 "components/bookmarks/managed/managed_bookmarks_tracker.h" | 5 #include "components/bookmarks/managed/managed_bookmarks_tracker.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 const std::string& url) { | 104 const std::string& url) { |
| 105 EXPECT_TRUE(GURL(url).is_valid()); | 105 EXPECT_TRUE(GURL(url).is_valid()); |
| 106 std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue()); | 106 std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue()); |
| 107 dict->SetString("name", title); | 107 dict->SetString("name", title); |
| 108 dict->SetString("url", GURL(url).spec()); | 108 dict->SetString("url", GURL(url).spec()); |
| 109 return dict; | 109 return dict; |
| 110 } | 110 } |
| 111 | 111 |
| 112 static std::unique_ptr<base::DictionaryValue> CreateFolder( | 112 static std::unique_ptr<base::DictionaryValue> CreateFolder( |
| 113 const std::string& title, | 113 const std::string& title, |
| 114 base::ListValue* children) { | 114 std::unique_ptr<base::ListValue> children) { |
| 115 std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue()); | 115 std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue()); |
| 116 dict->SetString("name", title); | 116 dict->SetString("name", title); |
| 117 dict->Set("children", children); | 117 dict->Set("children", std::move(children)); |
| 118 return dict; | 118 return dict; |
| 119 } | 119 } |
| 120 | 120 |
| 121 static base::ListValue* CreateTestTree() { | 121 static std::unique_ptr<base::ListValue> CreateTestTree() { |
| 122 base::ListValue* folder = new base::ListValue(); | 122 auto folder = base::MakeUnique<base::ListValue>(); |
| 123 base::ListValue* empty = new base::ListValue(); | 123 folder->Append(CreateFolder("Empty", base::MakeUnique<base::ListValue>())); |
| 124 folder->Append(CreateFolder("Empty", empty)); | |
| 125 folder->Append(CreateBookmark("Youtube", "http://youtube.com/")); | 124 folder->Append(CreateBookmark("Youtube", "http://youtube.com/")); |
| 126 | 125 |
| 127 base::ListValue* list = new base::ListValue(); | 126 auto list = base::MakeUnique<base::ListValue>(); |
| 128 list->Append(CreateBookmark("Google", "http://google.com/")); | 127 list->Append(CreateBookmark("Google", "http://google.com/")); |
| 129 list->Append(CreateFolder("Folder", folder)); | 128 list->Append(CreateFolder("Folder", std::move(folder))); |
| 130 | 129 |
| 131 return list; | 130 return list; |
| 132 } | 131 } |
| 133 | 132 |
| 134 static std::string GetManagementDomain() { | 133 static std::string GetManagementDomain() { |
| 135 return std::string(); | 134 return std::string(); |
| 136 } | 135 } |
| 137 | 136 |
| 138 static std::string GetManagedFolderTitle() { | 137 static std::string GetManagedFolderTitle() { |
| 139 return l10n_util::GetStringUTF8( | 138 return l10n_util::GetStringUTF8( |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 241 | 240 |
| 242 // Swap the Google bookmark with the Folder. | 241 // Swap the Google bookmark with the Folder. |
| 243 std::unique_ptr<base::ListValue> updated(CreateTestTree()); | 242 std::unique_ptr<base::ListValue> updated(CreateTestTree()); |
| 244 std::unique_ptr<base::Value> removed; | 243 std::unique_ptr<base::Value> removed; |
| 245 ASSERT_TRUE(updated->Remove(0, &removed)); | 244 ASSERT_TRUE(updated->Remove(0, &removed)); |
| 246 updated->Append(std::move(removed)); | 245 updated->Append(std::move(removed)); |
| 247 | 246 |
| 248 // These two nodes should just be swapped. | 247 // These two nodes should just be swapped. |
| 249 const BookmarkNode* parent = managed_node(); | 248 const BookmarkNode* parent = managed_node(); |
| 250 EXPECT_CALL(observer_, BookmarkNodeMoved(model_.get(), parent, 1, parent, 0)); | 249 EXPECT_CALL(observer_, BookmarkNodeMoved(model_.get(), parent, 1, parent, 0)); |
| 251 prefs_.SetManagedPref(prefs::kManagedBookmarks, updated->DeepCopy()); | 250 prefs_.SetManagedPref(prefs::kManagedBookmarks, updated->CreateDeepCopy()); |
| 252 Mock::VerifyAndClearExpectations(&observer_); | 251 Mock::VerifyAndClearExpectations(&observer_); |
| 253 | 252 |
| 254 // Verify the final tree. | 253 // Verify the final tree. |
| 255 std::unique_ptr<base::DictionaryValue> expected( | 254 std::unique_ptr<base::DictionaryValue> expected( |
| 256 CreateFolder(GetManagedFolderTitle(), updated.release())); | 255 CreateFolder(GetManagedFolderTitle(), std::move(updated))); |
| 257 EXPECT_TRUE(NodeMatchesValue(managed_node(), expected.get())); | 256 EXPECT_TRUE(NodeMatchesValue(managed_node(), expected.get())); |
| 258 } | 257 } |
| 259 | 258 |
| 260 TEST_F(ManagedBookmarksTrackerTest, RemoveNode) { | 259 TEST_F(ManagedBookmarksTrackerTest, RemoveNode) { |
| 261 prefs_.SetManagedPref(prefs::kManagedBookmarks, CreateTestTree()); | 260 prefs_.SetManagedPref(prefs::kManagedBookmarks, CreateTestTree()); |
| 262 CreateModel(false /* is_supervised */); | 261 CreateModel(false /* is_supervised */); |
| 263 | 262 |
| 264 // Remove the Folder. | 263 // Remove the Folder. |
| 265 std::unique_ptr<base::ListValue> updated(CreateTestTree()); | 264 std::unique_ptr<base::ListValue> updated(CreateTestTree()); |
| 266 ASSERT_TRUE(updated->Remove(1, NULL)); | 265 ASSERT_TRUE(updated->Remove(1, NULL)); |
| 267 | 266 |
| 268 const BookmarkNode* parent = managed_node(); | 267 const BookmarkNode* parent = managed_node(); |
| 269 EXPECT_CALL(observer_, BookmarkNodeRemoved(model_.get(), parent, 1, _, _)); | 268 EXPECT_CALL(observer_, BookmarkNodeRemoved(model_.get(), parent, 1, _, _)); |
| 270 prefs_.SetManagedPref(prefs::kManagedBookmarks, updated->DeepCopy()); | 269 prefs_.SetManagedPref(prefs::kManagedBookmarks, updated->CreateDeepCopy()); |
| 271 Mock::VerifyAndClearExpectations(&observer_); | 270 Mock::VerifyAndClearExpectations(&observer_); |
| 272 | 271 |
| 273 // Verify the final tree. | 272 // Verify the final tree. |
| 274 std::unique_ptr<base::DictionaryValue> expected( | 273 std::unique_ptr<base::DictionaryValue> expected( |
| 275 CreateFolder(GetManagedFolderTitle(), updated.release())); | 274 CreateFolder(GetManagedFolderTitle(), std::move(updated))); |
| 276 EXPECT_TRUE(NodeMatchesValue(managed_node(), expected.get())); | 275 EXPECT_TRUE(NodeMatchesValue(managed_node(), expected.get())); |
| 277 } | 276 } |
| 278 | 277 |
| 279 TEST_F(ManagedBookmarksTrackerTest, CreateNewNodes) { | 278 TEST_F(ManagedBookmarksTrackerTest, CreateNewNodes) { |
| 280 prefs_.SetManagedPref(prefs::kManagedBookmarks, CreateTestTree()); | 279 prefs_.SetManagedPref(prefs::kManagedBookmarks, CreateTestTree()); |
| 281 CreateModel(false /* is_supervised */); | 280 CreateModel(false /* is_supervised */); |
| 282 | 281 |
| 283 // Put all the nodes inside another folder. | 282 // Put all the nodes inside another folder. |
| 284 std::unique_ptr<base::ListValue> updated(new base::ListValue); | 283 std::unique_ptr<base::ListValue> updated(new base::ListValue); |
| 285 updated->Append(CreateFolder("Container", CreateTestTree())); | 284 updated->Append(CreateFolder("Container", CreateTestTree())); |
| 286 | 285 |
| 287 EXPECT_CALL(observer_, BookmarkNodeAdded(model_.get(), _, _)).Times(5); | 286 EXPECT_CALL(observer_, BookmarkNodeAdded(model_.get(), _, _)).Times(5); |
| 288 // The remaining nodes have been pushed to positions 1 and 2; they'll both be | 287 // The remaining nodes have been pushed to positions 1 and 2; they'll both be |
| 289 // removed when at position 1. | 288 // removed when at position 1. |
| 290 const BookmarkNode* parent = managed_node(); | 289 const BookmarkNode* parent = managed_node(); |
| 291 EXPECT_CALL(observer_, BookmarkNodeRemoved(model_.get(), parent, 1, _, _)) | 290 EXPECT_CALL(observer_, BookmarkNodeRemoved(model_.get(), parent, 1, _, _)) |
| 292 .Times(2); | 291 .Times(2); |
| 293 prefs_.SetManagedPref(prefs::kManagedBookmarks, updated->DeepCopy()); | 292 prefs_.SetManagedPref(prefs::kManagedBookmarks, updated->CreateDeepCopy()); |
| 294 Mock::VerifyAndClearExpectations(&observer_); | 293 Mock::VerifyAndClearExpectations(&observer_); |
| 295 | 294 |
| 296 // Verify the final tree. | 295 // Verify the final tree. |
| 297 std::unique_ptr<base::DictionaryValue> expected( | 296 std::unique_ptr<base::DictionaryValue> expected( |
| 298 CreateFolder(GetManagedFolderTitle(), updated.release())); | 297 CreateFolder(GetManagedFolderTitle(), std::move(updated))); |
| 299 EXPECT_TRUE(NodeMatchesValue(managed_node(), expected.get())); | 298 EXPECT_TRUE(NodeMatchesValue(managed_node(), expected.get())); |
| 300 } | 299 } |
| 301 | 300 |
| 302 TEST_F(ManagedBookmarksTrackerTest, RemoveAll) { | 301 TEST_F(ManagedBookmarksTrackerTest, RemoveAll) { |
| 303 prefs_.SetManagedPref(prefs::kManagedBookmarks, CreateTestTree()); | 302 prefs_.SetManagedPref(prefs::kManagedBookmarks, CreateTestTree()); |
| 304 CreateModel(false /* is_supervised */); | 303 CreateModel(false /* is_supervised */); |
| 305 EXPECT_TRUE(managed_node()->IsVisible()); | 304 EXPECT_TRUE(managed_node()->IsVisible()); |
| 306 | 305 |
| 307 // Remove the policy. | 306 // Remove the policy. |
| 308 const BookmarkNode* parent = managed_node(); | 307 const BookmarkNode* parent = managed_node(); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 355 Mock::VerifyAndClearExpectations(&observer_); | 354 Mock::VerifyAndClearExpectations(&observer_); |
| 356 | 355 |
| 357 EXPECT_CALL(observer_, BookmarkAllUserNodesRemoved(model_.get(), _)); | 356 EXPECT_CALL(observer_, BookmarkAllUserNodesRemoved(model_.get(), _)); |
| 358 model_->RemoveAllUserBookmarks(); | 357 model_->RemoveAllUserBookmarks(); |
| 359 EXPECT_EQ(2, managed_node()->child_count()); | 358 EXPECT_EQ(2, managed_node()->child_count()); |
| 360 EXPECT_EQ(0, model_->bookmark_bar_node()->child_count()); | 359 EXPECT_EQ(0, model_->bookmark_bar_node()->child_count()); |
| 361 Mock::VerifyAndClearExpectations(&observer_); | 360 Mock::VerifyAndClearExpectations(&observer_); |
| 362 } | 361 } |
| 363 | 362 |
| 364 } // namespace bookmarks | 363 } // namespace bookmarks |
| OLD | NEW |