| 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 "chrome/browser/bookmarks/chrome_bookmark_client.h" | 5 #include "chrome/browser/bookmarks/chrome_bookmark_client.h" |
| 6 | 6 |
| 7 #include "base/macros.h" | 7 #include "base/macros.h" |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
| 10 #include "base/values.h" | 10 #include "base/values.h" |
| (...skipping 16 matching lines...) Expand all Loading... |
| 27 using testing::Mock; | 27 using testing::Mock; |
| 28 using testing::_; | 28 using testing::_; |
| 29 | 29 |
| 30 class ChromeBookmarkClientTest : public testing::Test { | 30 class ChromeBookmarkClientTest : public testing::Test { |
| 31 public: | 31 public: |
| 32 ChromeBookmarkClientTest() : client_(NULL), model_(NULL) {} | 32 ChromeBookmarkClientTest() : client_(NULL), model_(NULL) {} |
| 33 virtual ~ChromeBookmarkClientTest() {} | 33 virtual ~ChromeBookmarkClientTest() {} |
| 34 | 34 |
| 35 virtual void SetUp() OVERRIDE { | 35 virtual void SetUp() OVERRIDE { |
| 36 prefs_ = profile_.GetTestingPrefService(); | 36 prefs_ = profile_.GetTestingPrefService(); |
| 37 ASSERT_FALSE(prefs_->HasPrefPath(prefs::kManagedBookmarks)); | 37 ASSERT_FALSE(prefs_->HasPrefPath(bookmarks::prefs::kManagedBookmarks)); |
| 38 | 38 |
| 39 prefs_->SetManagedPref(prefs::kManagedBookmarks, CreateTestTree()); | 39 prefs_->SetManagedPref(bookmarks::prefs::kManagedBookmarks, |
| 40 CreateTestTree()); |
| 40 ResetModel(); | 41 ResetModel(); |
| 41 | 42 |
| 42 // The managed node always exists. | 43 // The managed node always exists. |
| 43 ASSERT_TRUE(client_->managed_node()); | 44 ASSERT_TRUE(client_->managed_node()); |
| 44 ASSERT_TRUE(client_->managed_node()->parent() == model_->root_node()); | 45 ASSERT_TRUE(client_->managed_node()->parent() == model_->root_node()); |
| 45 EXPECT_NE(-1, model_->root_node()->GetIndexOf(client_->managed_node())); | 46 EXPECT_NE(-1, model_->root_node()->GetIndexOf(client_->managed_node())); |
| 46 } | 47 } |
| 47 | 48 |
| 48 virtual void TearDown() OVERRIDE { | 49 virtual void TearDown() OVERRIDE { |
| 49 model_->RemoveObserver(&observer_); | 50 model_->RemoveObserver(&observer_); |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 133 ChromeBookmarkClient* client_; | 134 ChromeBookmarkClient* client_; |
| 134 BookmarkModel* model_; | 135 BookmarkModel* model_; |
| 135 | 136 |
| 136 DISALLOW_COPY_AND_ASSIGN(ChromeBookmarkClientTest); | 137 DISALLOW_COPY_AND_ASSIGN(ChromeBookmarkClientTest); |
| 137 }; | 138 }; |
| 138 | 139 |
| 139 TEST_F(ChromeBookmarkClientTest, EmptyManagedNode) { | 140 TEST_F(ChromeBookmarkClientTest, EmptyManagedNode) { |
| 140 // Verifies that the managed node is empty and invisible when the policy is | 141 // Verifies that the managed node is empty and invisible when the policy is |
| 141 // not set. | 142 // not set. |
| 142 model_->RemoveObserver(&observer_); | 143 model_->RemoveObserver(&observer_); |
| 143 prefs_->RemoveManagedPref(prefs::kManagedBookmarks); | 144 prefs_->RemoveManagedPref(bookmarks::prefs::kManagedBookmarks); |
| 144 ResetModel(); | 145 ResetModel(); |
| 145 | 146 |
| 146 ASSERT_TRUE(client_->managed_node()); | 147 ASSERT_TRUE(client_->managed_node()); |
| 147 EXPECT_TRUE(client_->managed_node()->empty()); | 148 EXPECT_TRUE(client_->managed_node()->empty()); |
| 148 EXPECT_FALSE(client_->managed_node()->IsVisible()); | 149 EXPECT_FALSE(client_->managed_node()->IsVisible()); |
| 149 } | 150 } |
| 150 | 151 |
| 151 TEST_F(ChromeBookmarkClientTest, LoadInitial) { | 152 TEST_F(ChromeBookmarkClientTest, LoadInitial) { |
| 152 // Verifies that the initial load picks up the initial policy too. | 153 // Verifies that the initial load picks up the initial policy too. |
| 153 EXPECT_TRUE(model_->bookmark_bar_node()->empty()); | 154 EXPECT_TRUE(model_->bookmark_bar_node()->empty()); |
| 154 EXPECT_TRUE(model_->other_node()->empty()); | 155 EXPECT_TRUE(model_->other_node()->empty()); |
| 155 EXPECT_FALSE(client_->managed_node()->empty()); | 156 EXPECT_FALSE(client_->managed_node()->empty()); |
| 156 EXPECT_TRUE(client_->managed_node()->IsVisible()); | 157 EXPECT_TRUE(client_->managed_node()->IsVisible()); |
| 157 | 158 |
| 158 scoped_ptr<base::DictionaryValue> expected(CreateExpectedTree()); | 159 scoped_ptr<base::DictionaryValue> expected(CreateExpectedTree()); |
| 159 EXPECT_TRUE(NodeMatchesValue(client_->managed_node(), expected.get())); | 160 EXPECT_TRUE(NodeMatchesValue(client_->managed_node(), expected.get())); |
| 160 } | 161 } |
| 161 | 162 |
| 162 TEST_F(ChromeBookmarkClientTest, SwapNodes) { | 163 TEST_F(ChromeBookmarkClientTest, SwapNodes) { |
| 163 // Swap the Google bookmark with the Folder. | 164 // Swap the Google bookmark with the Folder. |
| 164 scoped_ptr<base::ListValue> updated(CreateTestTree()); | 165 scoped_ptr<base::ListValue> updated(CreateTestTree()); |
| 165 scoped_ptr<base::Value> removed; | 166 scoped_ptr<base::Value> removed; |
| 166 ASSERT_TRUE(updated->Remove(0, &removed)); | 167 ASSERT_TRUE(updated->Remove(0, &removed)); |
| 167 updated->Append(removed.release()); | 168 updated->Append(removed.release()); |
| 168 | 169 |
| 169 // These two nodes should just be swapped. | 170 // These two nodes should just be swapped. |
| 170 const BookmarkNode* parent = client_->managed_node(); | 171 const BookmarkNode* parent = client_->managed_node(); |
| 171 EXPECT_CALL(observer_, BookmarkNodeMoved(model_, parent, 1, parent, 0)); | 172 EXPECT_CALL(observer_, BookmarkNodeMoved(model_, parent, 1, parent, 0)); |
| 172 prefs_->SetManagedPref(prefs::kManagedBookmarks, updated->DeepCopy()); | 173 prefs_->SetManagedPref(bookmarks::prefs::kManagedBookmarks, |
| 174 updated->DeepCopy()); |
| 173 Mock::VerifyAndClearExpectations(&observer_); | 175 Mock::VerifyAndClearExpectations(&observer_); |
| 174 | 176 |
| 175 // Verify the final tree. | 177 // Verify the final tree. |
| 176 scoped_ptr<base::DictionaryValue> expected( | 178 scoped_ptr<base::DictionaryValue> expected( |
| 177 CreateFolder(GetManagedFolderTitle(), updated.release())); | 179 CreateFolder(GetManagedFolderTitle(), updated.release())); |
| 178 EXPECT_TRUE(NodeMatchesValue(client_->managed_node(), expected.get())); | 180 EXPECT_TRUE(NodeMatchesValue(client_->managed_node(), expected.get())); |
| 179 } | 181 } |
| 180 | 182 |
| 181 TEST_F(ChromeBookmarkClientTest, RemoveNode) { | 183 TEST_F(ChromeBookmarkClientTest, RemoveNode) { |
| 182 // Remove the Folder. | 184 // Remove the Folder. |
| 183 scoped_ptr<base::ListValue> updated(CreateTestTree()); | 185 scoped_ptr<base::ListValue> updated(CreateTestTree()); |
| 184 ASSERT_TRUE(updated->Remove(1, NULL)); | 186 ASSERT_TRUE(updated->Remove(1, NULL)); |
| 185 | 187 |
| 186 const BookmarkNode* parent = client_->managed_node(); | 188 const BookmarkNode* parent = client_->managed_node(); |
| 187 EXPECT_CALL(observer_, BookmarkNodeRemoved(model_, parent, 1, _, _)); | 189 EXPECT_CALL(observer_, BookmarkNodeRemoved(model_, parent, 1, _, _)); |
| 188 prefs_->SetManagedPref(prefs::kManagedBookmarks, updated->DeepCopy()); | 190 prefs_->SetManagedPref(bookmarks::prefs::kManagedBookmarks, |
| 191 updated->DeepCopy()); |
| 189 Mock::VerifyAndClearExpectations(&observer_); | 192 Mock::VerifyAndClearExpectations(&observer_); |
| 190 | 193 |
| 191 // Verify the final tree. | 194 // Verify the final tree. |
| 192 scoped_ptr<base::DictionaryValue> expected( | 195 scoped_ptr<base::DictionaryValue> expected( |
| 193 CreateFolder(GetManagedFolderTitle(), updated.release())); | 196 CreateFolder(GetManagedFolderTitle(), updated.release())); |
| 194 EXPECT_TRUE(NodeMatchesValue(client_->managed_node(), expected.get())); | 197 EXPECT_TRUE(NodeMatchesValue(client_->managed_node(), expected.get())); |
| 195 } | 198 } |
| 196 | 199 |
| 197 TEST_F(ChromeBookmarkClientTest, CreateNewNodes) { | 200 TEST_F(ChromeBookmarkClientTest, CreateNewNodes) { |
| 198 // Put all the nodes inside another folder. | 201 // Put all the nodes inside another folder. |
| 199 scoped_ptr<base::ListValue> updated(new base::ListValue); | 202 scoped_ptr<base::ListValue> updated(new base::ListValue); |
| 200 updated->Append(CreateFolder("Container", CreateTestTree())); | 203 updated->Append(CreateFolder("Container", CreateTestTree())); |
| 201 | 204 |
| 202 EXPECT_CALL(observer_, BookmarkNodeAdded(model_, _, _)).Times(5); | 205 EXPECT_CALL(observer_, BookmarkNodeAdded(model_, _, _)).Times(5); |
| 203 // The remaining nodes have been pushed to positions 1 and 2; they'll both be | 206 // The remaining nodes have been pushed to positions 1 and 2; they'll both be |
| 204 // removed when at position 1. | 207 // removed when at position 1. |
| 205 const BookmarkNode* parent = client_->managed_node(); | 208 const BookmarkNode* parent = client_->managed_node(); |
| 206 EXPECT_CALL(observer_, BookmarkNodeRemoved(model_, parent, 1, _, _)) | 209 EXPECT_CALL(observer_, BookmarkNodeRemoved(model_, parent, 1, _, _)) |
| 207 .Times(2); | 210 .Times(2); |
| 208 prefs_->SetManagedPref(prefs::kManagedBookmarks, updated->DeepCopy()); | 211 prefs_->SetManagedPref(bookmarks::prefs::kManagedBookmarks, |
| 212 updated->DeepCopy()); |
| 209 Mock::VerifyAndClearExpectations(&observer_); | 213 Mock::VerifyAndClearExpectations(&observer_); |
| 210 | 214 |
| 211 // Verify the final tree. | 215 // Verify the final tree. |
| 212 scoped_ptr<base::DictionaryValue> expected( | 216 scoped_ptr<base::DictionaryValue> expected( |
| 213 CreateFolder(GetManagedFolderTitle(), updated.release())); | 217 CreateFolder(GetManagedFolderTitle(), updated.release())); |
| 214 EXPECT_TRUE(NodeMatchesValue(client_->managed_node(), expected.get())); | 218 EXPECT_TRUE(NodeMatchesValue(client_->managed_node(), expected.get())); |
| 215 } | 219 } |
| 216 | 220 |
| 217 TEST_F(ChromeBookmarkClientTest, RemoveAllUserBookmarks) { | 221 TEST_F(ChromeBookmarkClientTest, RemoveAllUserBookmarks) { |
| 218 // Remove the policy. | 222 // Remove the policy. |
| 219 const BookmarkNode* parent = client_->managed_node(); | 223 const BookmarkNode* parent = client_->managed_node(); |
| 220 EXPECT_CALL(observer_, BookmarkNodeRemoved(model_, parent, 0, _, _)) | 224 EXPECT_CALL(observer_, BookmarkNodeRemoved(model_, parent, 0, _, _)) |
| 221 .Times(2); | 225 .Times(2); |
| 222 prefs_->RemoveManagedPref(prefs::kManagedBookmarks); | 226 prefs_->RemoveManagedPref(bookmarks::prefs::kManagedBookmarks); |
| 223 Mock::VerifyAndClearExpectations(&observer_); | 227 Mock::VerifyAndClearExpectations(&observer_); |
| 224 | 228 |
| 225 EXPECT_TRUE(client_->managed_node()->empty()); | 229 EXPECT_TRUE(client_->managed_node()->empty()); |
| 226 EXPECT_FALSE(client_->managed_node()->IsVisible()); | 230 EXPECT_FALSE(client_->managed_node()->IsVisible()); |
| 227 } | 231 } |
| 228 | 232 |
| 229 TEST_F(ChromeBookmarkClientTest, IsDescendantOfManagedNode) { | 233 TEST_F(ChromeBookmarkClientTest, IsDescendantOfManagedNode) { |
| 230 EXPECT_FALSE(client_->IsDescendantOfManagedNode(model_->root_node())); | 234 EXPECT_FALSE(client_->IsDescendantOfManagedNode(model_->root_node())); |
| 231 EXPECT_FALSE(client_->IsDescendantOfManagedNode(model_->bookmark_bar_node())); | 235 EXPECT_FALSE(client_->IsDescendantOfManagedNode(model_->bookmark_bar_node())); |
| 232 EXPECT_FALSE(client_->IsDescendantOfManagedNode(model_->other_node())); | 236 EXPECT_FALSE(client_->IsDescendantOfManagedNode(model_->other_node())); |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 275 const BookmarkNode* managed_node = client_->managed_node()->GetChild(0); | 279 const BookmarkNode* managed_node = client_->managed_node()->GetChild(0); |
| 276 ASSERT_TRUE(managed_node); | 280 ASSERT_TRUE(managed_node); |
| 277 | 281 |
| 278 std::vector<const BookmarkNode*> nodes; | 282 std::vector<const BookmarkNode*> nodes; |
| 279 EXPECT_FALSE(client_->HasDescendantsOfManagedNode(nodes)); | 283 EXPECT_FALSE(client_->HasDescendantsOfManagedNode(nodes)); |
| 280 nodes.push_back(user_node); | 284 nodes.push_back(user_node); |
| 281 EXPECT_FALSE(client_->HasDescendantsOfManagedNode(nodes)); | 285 EXPECT_FALSE(client_->HasDescendantsOfManagedNode(nodes)); |
| 282 nodes.push_back(managed_node); | 286 nodes.push_back(managed_node); |
| 283 EXPECT_TRUE(client_->HasDescendantsOfManagedNode(nodes)); | 287 EXPECT_TRUE(client_->HasDescendantsOfManagedNode(nodes)); |
| 284 } | 288 } |
| OLD | NEW |