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