| 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/policy/core/browser/managed_bookmarks_tracker.h" | 5 #include "components/policy/core/browser/managed_bookmarks_tracker.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
| 9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
| 10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
| (...skipping 18 matching lines...) Expand all Loading... |
| 29 | 29 |
| 30 namespace policy { | 30 namespace policy { |
| 31 | 31 |
| 32 class ManagedBookmarksTrackerTest : public testing::Test { | 32 class ManagedBookmarksTrackerTest : public testing::Test { |
| 33 public: | 33 public: |
| 34 ManagedBookmarksTrackerTest() : managed_node_(NULL) {} | 34 ManagedBookmarksTrackerTest() : managed_node_(NULL) {} |
| 35 ~ManagedBookmarksTrackerTest() override {} | 35 ~ManagedBookmarksTrackerTest() override {} |
| 36 | 36 |
| 37 void SetUp() override { | 37 void SetUp() override { |
| 38 prefs_.registry()->RegisterListPref(bookmarks::prefs::kManagedBookmarks); | 38 prefs_.registry()->RegisterListPref(bookmarks::prefs::kManagedBookmarks); |
| 39 prefs_.registry()->RegisterListPref(bookmarks::prefs::kSupervisedBookmarks); |
| 39 prefs_.registry()->RegisterListPref( | 40 prefs_.registry()->RegisterListPref( |
| 40 bookmarks::prefs::kBookmarkEditorExpandedNodes); | 41 bookmarks::prefs::kBookmarkEditorExpandedNodes); |
| 41 } | 42 } |
| 42 | 43 |
| 43 void TearDown() override { | 44 void TearDown() override { |
| 44 if (model_) | 45 if (model_) |
| 45 model_->RemoveObserver(&observer_); | 46 model_->RemoveObserver(&observer_); |
| 46 } | 47 } |
| 47 | 48 |
| 48 void CreateModel() { | 49 void CreateModel() { |
| 50 CreateModel(false); |
| 51 } |
| 52 |
| 53 void CreateModel(bool is_supervised) { |
| 49 // Simulate the creation of the managed node by the BookmarkClient. | 54 // Simulate the creation of the managed node by the BookmarkClient. |
| 50 BookmarkPermanentNode* managed_node = new BookmarkPermanentNode(100); | 55 BookmarkPermanentNode* managed_node = new BookmarkPermanentNode(100); |
| 51 policy::ManagedBookmarksTracker::LoadInitial( | 56 policy::ManagedBookmarksTracker::LoadInitial( |
| 52 managed_node, prefs_.GetList(bookmarks::prefs::kManagedBookmarks), 101); | 57 managed_node, |
| 58 prefs_.GetList(ManagedBookmarksTracker::GetPrefName(is_supervised)), |
| 59 101); |
| 53 managed_node->set_visible(!managed_node->empty()); | 60 managed_node->set_visible(!managed_node->empty()); |
| 54 managed_node->SetTitle(l10n_util::GetStringUTF16( | 61 managed_node->SetTitle(l10n_util::GetStringUTF16( |
| 55 IDS_BOOKMARK_BAR_MANAGED_FOLDER_DEFAULT_NAME)); | 62 is_supervised ? IDS_BOOKMARK_BAR_SUPERVISED_FOLDER_DEFAULT_NAME |
| 63 : IDS_BOOKMARK_BAR_MANAGED_FOLDER_DEFAULT_NAME)); |
| 56 | 64 |
| 57 bookmarks::BookmarkPermanentNodeList extra_nodes; | 65 bookmarks::BookmarkPermanentNodeList extra_nodes; |
| 58 extra_nodes.push_back(managed_node); | 66 extra_nodes.push_back(managed_node); |
| 59 client_.SetExtraNodesToLoad(extra_nodes.Pass()); | 67 client_.SetExtraNodesToLoad(extra_nodes.Pass()); |
| 60 | 68 |
| 61 model_.reset(new BookmarkModel(&client_)); | 69 model_.reset(new BookmarkModel(&client_)); |
| 62 model_->AddObserver(&observer_); | 70 model_->AddObserver(&observer_); |
| 63 EXPECT_CALL(observer_, BookmarkModelLoaded(model_.get(), _)); | 71 EXPECT_CALL(observer_, BookmarkModelLoaded(model_.get(), _)); |
| 64 model_->Load(&prefs_, | 72 model_->Load(&prefs_, |
| 65 std::string(), | 73 std::string(), |
| 66 base::FilePath(), | 74 base::FilePath(), |
| 67 base::MessageLoopProxy::current(), | 75 base::MessageLoopProxy::current(), |
| 68 base::MessageLoopProxy::current()); | 76 base::MessageLoopProxy::current()); |
| 69 bookmarks::test::WaitForBookmarkModelToLoad(model_.get()); | 77 bookmarks::test::WaitForBookmarkModelToLoad(model_.get()); |
| 70 Mock::VerifyAndClearExpectations(&observer_); | 78 Mock::VerifyAndClearExpectations(&observer_); |
| 71 | 79 |
| 72 ASSERT_EQ(1u, client_.extra_nodes().size()); | 80 ASSERT_EQ(1u, client_.extra_nodes().size()); |
| 73 managed_node_ = client_.extra_nodes()[0]; | 81 managed_node_ = client_.extra_nodes()[0]; |
| 74 ASSERT_EQ(managed_node, managed_node_); | 82 ASSERT_EQ(managed_node, managed_node_); |
| 75 | 83 |
| 76 managed_bookmarks_tracker_.reset(new ManagedBookmarksTracker( | 84 managed_bookmarks_tracker_.reset(new ManagedBookmarksTracker( |
| 77 model_.get(), | 85 model_.get(), |
| 78 &prefs_, | 86 &prefs_, |
| 87 is_supervised, |
| 79 base::Bind(&ManagedBookmarksTrackerTest::GetManagementDomain))); | 88 base::Bind(&ManagedBookmarksTrackerTest::GetManagementDomain))); |
| 80 managed_bookmarks_tracker_->Init(managed_node_); | 89 managed_bookmarks_tracker_->Init(managed_node_); |
| 81 } | 90 } |
| 82 | 91 |
| 83 const BookmarkNode* managed_node() { | 92 const BookmarkNode* managed_node() { |
| 84 return managed_node_; | 93 return managed_node_; |
| 85 } | 94 } |
| 86 | 95 |
| 87 bool IsManaged(const BookmarkNode* node) { | 96 bool IsManaged(const BookmarkNode* node) { |
| 88 return node && node->HasAncestor(managed_node_); | 97 return node && node->HasAncestor(managed_node_); |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 183 CreateModel(); | 192 CreateModel(); |
| 184 EXPECT_TRUE(model_->bookmark_bar_node()->empty()); | 193 EXPECT_TRUE(model_->bookmark_bar_node()->empty()); |
| 185 EXPECT_TRUE(model_->other_node()->empty()); | 194 EXPECT_TRUE(model_->other_node()->empty()); |
| 186 EXPECT_FALSE(managed_node()->empty()); | 195 EXPECT_FALSE(managed_node()->empty()); |
| 187 EXPECT_TRUE(managed_node()->IsVisible()); | 196 EXPECT_TRUE(managed_node()->IsVisible()); |
| 188 | 197 |
| 189 scoped_ptr<base::DictionaryValue> expected(CreateExpectedTree()); | 198 scoped_ptr<base::DictionaryValue> expected(CreateExpectedTree()); |
| 190 EXPECT_TRUE(NodeMatchesValue(managed_node(), expected.get())); | 199 EXPECT_TRUE(NodeMatchesValue(managed_node(), expected.get())); |
| 191 } | 200 } |
| 192 | 201 |
| 202 TEST_F(ManagedBookmarksTrackerTest, SupervisedTrackerIgnoresManagedPref) { |
| 203 prefs_.SetManagedPref(bookmarks::prefs::kManagedBookmarks, CreateTestTree()); |
| 204 CreateModel(true); |
| 205 EXPECT_TRUE(managed_node()->empty()); |
| 206 EXPECT_FALSE(managed_node()->IsVisible()); |
| 207 } |
| 208 |
| 209 TEST_F(ManagedBookmarksTrackerTest, SupervisedTrackerHandlesSupervisedPref) { |
| 210 prefs_.SetManagedPref(bookmarks::prefs::kSupervisedBookmarks, |
| 211 CreateTestTree()); |
| 212 CreateModel(true); |
| 213 EXPECT_FALSE(managed_node()->empty()); |
| 214 EXPECT_TRUE(managed_node()->IsVisible()); |
| 215 // Don't bother checking the actual contents, the non-supervised tests cover |
| 216 // that already. |
| 217 } |
| 218 |
| 193 TEST_F(ManagedBookmarksTrackerTest, SwapNodes) { | 219 TEST_F(ManagedBookmarksTrackerTest, SwapNodes) { |
| 194 prefs_.SetManagedPref(bookmarks::prefs::kManagedBookmarks, CreateTestTree()); | 220 prefs_.SetManagedPref(bookmarks::prefs::kManagedBookmarks, CreateTestTree()); |
| 195 CreateModel(); | 221 CreateModel(); |
| 196 | 222 |
| 197 // Swap the Google bookmark with the Folder. | 223 // Swap the Google bookmark with the Folder. |
| 198 scoped_ptr<base::ListValue> updated(CreateTestTree()); | 224 scoped_ptr<base::ListValue> updated(CreateTestTree()); |
| 199 scoped_ptr<base::Value> removed; | 225 scoped_ptr<base::Value> removed; |
| 200 ASSERT_TRUE(updated->Remove(0, &removed)); | 226 ASSERT_TRUE(updated->Remove(0, &removed)); |
| 201 updated->Append(removed.release()); | 227 updated->Append(removed.release()); |
| 202 | 228 |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 313 Mock::VerifyAndClearExpectations(&observer_); | 339 Mock::VerifyAndClearExpectations(&observer_); |
| 314 | 340 |
| 315 EXPECT_CALL(observer_, BookmarkAllUserNodesRemoved(model_.get(), _)); | 341 EXPECT_CALL(observer_, BookmarkAllUserNodesRemoved(model_.get(), _)); |
| 316 model_->RemoveAllUserBookmarks(); | 342 model_->RemoveAllUserBookmarks(); |
| 317 EXPECT_EQ(2, managed_node()->child_count()); | 343 EXPECT_EQ(2, managed_node()->child_count()); |
| 318 EXPECT_EQ(0, model_->bookmark_bar_node()->child_count()); | 344 EXPECT_EQ(0, model_->bookmark_bar_node()->child_count()); |
| 319 Mock::VerifyAndClearExpectations(&observer_); | 345 Mock::VerifyAndClearExpectations(&observer_); |
| 320 } | 346 } |
| 321 | 347 |
| 322 } // namespace policy | 348 } // namespace policy |
| OLD | NEW |