Chromium Code Reviews| 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 |