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() { |
bartfab (slow)
2015/01/26 15:40:14
Nit: Please remove this method and replace all cal
Marc Treib
2015/01/26 16:16:48
Done.
| |
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); | |
bartfab (slow)
2015/01/26 15:40:14
Nit: Add /* is_supervised */
Marc Treib
2015/01/26 16:16:48
Done.
| |
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); | |
bartfab (slow)
2015/01/26 15:40:14
Nit: Add /* is_supervised */
Marc Treib
2015/01/26 16:16:48
Done.
| |
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 | |
bartfab (slow)
2015/01/26 15:40:14
You could parameterize the test and verify that bo
Marc Treib
2015/01/26 16:16:47
Hm. It's not "the test", but "every test in this f
| |
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 |