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/bookmarks/browser/bookmark_model.h" | 5 #include "components/bookmarks/browser/bookmark_model.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/base_paths.h" | 10 #include "base/base_paths.h" |
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
325 void BookmarkAllUserNodesRemoved( | 325 void BookmarkAllUserNodesRemoved( |
326 BookmarkModel* model, | 326 BookmarkModel* model, |
327 const std::set<GURL>& removed_urls) override { | 327 const std::set<GURL>& removed_urls) override { |
328 ++all_bookmarks_removed_; | 328 ++all_bookmarks_removed_; |
329 } | 329 } |
330 | 330 |
331 void OnWillRemoveAllUserBookmarks(BookmarkModel* model) override { | 331 void OnWillRemoveAllUserBookmarks(BookmarkModel* model) override { |
332 ++before_remove_all_count_; | 332 ++before_remove_all_count_; |
333 } | 333 } |
334 | 334 |
| 335 void GroupedBookmarkChangesBeginning(BookmarkModel* model) override { |
| 336 ++grouped_changes_beginning_count_; |
| 337 } |
| 338 |
| 339 void GroupedBookmarkChangesEnded(BookmarkModel* model) override { |
| 340 ++grouped_changes_ended_count_; |
| 341 } |
| 342 |
335 void ClearCounts() { | 343 void ClearCounts() { |
336 added_count_ = moved_count_ = removed_count_ = changed_count_ = | 344 added_count_ = moved_count_ = removed_count_ = changed_count_ = |
337 reordered_count_ = extensive_changes_beginning_count_ = | 345 reordered_count_ = extensive_changes_beginning_count_ = |
338 extensive_changes_ended_count_ = all_bookmarks_removed_ = | 346 extensive_changes_ended_count_ = all_bookmarks_removed_ = |
339 before_remove_count_ = before_change_count_ = before_reorder_count_ = | 347 before_remove_count_ = before_change_count_ = before_reorder_count_ = |
340 before_remove_all_count_ = 0; | 348 before_remove_all_count_ = grouped_changes_beginning_count_ = |
| 349 grouped_changes_ended_count_ = 0; |
341 } | 350 } |
342 | 351 |
343 void AssertObserverCount(int added_count, | 352 void AssertObserverCount(int added_count, |
344 int moved_count, | 353 int moved_count, |
345 int removed_count, | 354 int removed_count, |
346 int changed_count, | 355 int changed_count, |
347 int reordered_count, | 356 int reordered_count, |
348 int before_remove_count, | 357 int before_remove_count, |
349 int before_change_count, | 358 int before_change_count, |
350 int before_reorder_count, | 359 int before_reorder_count, |
(...skipping 10 matching lines...) Expand all Loading... |
361 } | 370 } |
362 | 371 |
363 void AssertExtensiveChangesObserverCount( | 372 void AssertExtensiveChangesObserverCount( |
364 int extensive_changes_beginning_count, | 373 int extensive_changes_beginning_count, |
365 int extensive_changes_ended_count) { | 374 int extensive_changes_ended_count) { |
366 EXPECT_EQ(extensive_changes_beginning_count, | 375 EXPECT_EQ(extensive_changes_beginning_count, |
367 extensive_changes_beginning_count_); | 376 extensive_changes_beginning_count_); |
368 EXPECT_EQ(extensive_changes_ended_count, extensive_changes_ended_count_); | 377 EXPECT_EQ(extensive_changes_ended_count, extensive_changes_ended_count_); |
369 } | 378 } |
370 | 379 |
| 380 void AssertGroupedChangesObserverCount( |
| 381 int grouped_changes_beginning_count, |
| 382 int grouped_changes_ended_count) { |
| 383 EXPECT_EQ(grouped_changes_beginning_count, |
| 384 grouped_changes_beginning_count_); |
| 385 EXPECT_EQ(grouped_changes_ended_count, grouped_changes_ended_count_); |
| 386 } |
| 387 |
371 int AllNodesRemovedObserverCount() const { return all_bookmarks_removed_; } | 388 int AllNodesRemovedObserverCount() const { return all_bookmarks_removed_; } |
372 | 389 |
373 BookmarkPermanentNode* ReloadModelWithExtraNode() { | 390 BookmarkPermanentNode* ReloadModelWithExtraNode() { |
374 BookmarkPermanentNode* extra_node = new BookmarkPermanentNode(100); | 391 BookmarkPermanentNode* extra_node = new BookmarkPermanentNode(100); |
375 BookmarkPermanentNodeList extra_nodes; | 392 BookmarkPermanentNodeList extra_nodes; |
376 extra_nodes.push_back(extra_node); | 393 extra_nodes.push_back(extra_node); |
377 client_.SetExtraNodesToLoad(extra_nodes.Pass()); | 394 client_.SetExtraNodesToLoad(extra_nodes.Pass()); |
378 | 395 |
379 model_->RemoveObserver(this); | 396 model_->RemoveObserver(this); |
380 model_ = client_.CreateModel(); | 397 model_ = client_.CreateModel(); |
(...skipping 17 matching lines...) Expand all Loading... |
398 int removed_count_; | 415 int removed_count_; |
399 int changed_count_; | 416 int changed_count_; |
400 int reordered_count_; | 417 int reordered_count_; |
401 int extensive_changes_beginning_count_; | 418 int extensive_changes_beginning_count_; |
402 int extensive_changes_ended_count_; | 419 int extensive_changes_ended_count_; |
403 int all_bookmarks_removed_; | 420 int all_bookmarks_removed_; |
404 int before_remove_count_; | 421 int before_remove_count_; |
405 int before_change_count_; | 422 int before_change_count_; |
406 int before_reorder_count_; | 423 int before_reorder_count_; |
407 int before_remove_all_count_; | 424 int before_remove_all_count_; |
| 425 int grouped_changes_beginning_count_; |
| 426 int grouped_changes_ended_count_; |
408 | 427 |
409 DISALLOW_COPY_AND_ASSIGN(BookmarkModelTest); | 428 DISALLOW_COPY_AND_ASSIGN(BookmarkModelTest); |
410 }; | 429 }; |
411 | 430 |
412 TEST_F(BookmarkModelTest, InitialState) { | 431 TEST_F(BookmarkModelTest, InitialState) { |
413 const BookmarkNode* bb_node = model_->bookmark_bar_node(); | 432 const BookmarkNode* bb_node = model_->bookmark_bar_node(); |
414 ASSERT_TRUE(bb_node != NULL); | 433 ASSERT_TRUE(bb_node != NULL); |
415 EXPECT_EQ(0, bb_node->child_count()); | 434 EXPECT_EQ(0, bb_node->child_count()); |
416 EXPECT_EQ(BookmarkNode::BOOKMARK_BAR, bb_node->type()); | 435 EXPECT_EQ(BookmarkNode::BOOKMARK_BAR, bb_node->type()); |
417 | 436 |
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
623 GURL url("http://foo.com"); | 642 GURL url("http://foo.com"); |
624 model_->AddURL(bookmark_bar_node, 0, title, url); | 643 model_->AddURL(bookmark_bar_node, 0, title, url); |
625 | 644 |
626 // Add a folder with child URL. | 645 // Add a folder with child URL. |
627 const BookmarkNode* folder = model_->AddFolder(bookmark_bar_node, 0, title); | 646 const BookmarkNode* folder = model_->AddFolder(bookmark_bar_node, 0, title); |
628 model_->AddURL(folder, 0, title, url); | 647 model_->AddURL(folder, 0, title, url); |
629 | 648 |
630 AssertObserverCount(3, 0, 0, 0, 0, 0, 0, 0, 0); | 649 AssertObserverCount(3, 0, 0, 0, 0, 0, 0, 0, 0); |
631 ClearCounts(); | 650 ClearCounts(); |
632 | 651 |
| 652 int permanent_node_count = model_->root_node()->child_count(); |
| 653 |
633 model_->RemoveAllUserBookmarks(); | 654 model_->RemoveAllUserBookmarks(); |
634 | 655 |
635 EXPECT_EQ(0, bookmark_bar_node->child_count()); | 656 EXPECT_EQ(0, bookmark_bar_node->child_count()); |
| 657 // No permanent node should be removed. |
| 658 EXPECT_EQ(permanent_node_count, model_->root_node()->child_count()); |
636 // No individual BookmarkNodeRemoved events are fired, so removed count | 659 // No individual BookmarkNodeRemoved events are fired, so removed count |
637 // should be 0. | 660 // should be 0. |
638 AssertObserverCount(0, 0, 0, 0, 0, 0, 0, 0, 1); | 661 AssertObserverCount(0, 0, 0, 0, 0, 0, 0, 0, 1); |
639 AssertExtensiveChangesObserverCount(1, 1); | 662 AssertExtensiveChangesObserverCount(1, 1); |
| 663 AssertGroupedChangesObserverCount(1, 1); |
640 EXPECT_EQ(1, AllNodesRemovedObserverCount()); | 664 EXPECT_EQ(1, AllNodesRemovedObserverCount()); |
641 } | 665 } |
642 | 666 |
643 TEST_F(BookmarkModelTest, SetTitle) { | 667 TEST_F(BookmarkModelTest, SetTitle) { |
644 const BookmarkNode* root = model_->bookmark_bar_node(); | 668 const BookmarkNode* root = model_->bookmark_bar_node(); |
645 base::string16 title(ASCIIToUTF16("foo")); | 669 base::string16 title(ASCIIToUTF16("foo")); |
646 const GURL url("http://foo.com"); | 670 const GURL url("http://foo.com"); |
647 const BookmarkNode* node = model_->AddURL(root, 0, title, url); | 671 const BookmarkNode* node = model_->AddURL(root, 0, title, url); |
648 | 672 |
649 ClearCounts(); | 673 ClearCounts(); |
(...skipping 673 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1323 std::set<GURL> changed_page_urls; | 1347 std::set<GURL> changed_page_urls; |
1324 changed_page_urls.insert(kPageURL1); | 1348 changed_page_urls.insert(kPageURL1); |
1325 model_->OnFaviconsChanged(changed_page_urls, kFaviconURL12); | 1349 model_->OnFaviconsChanged(changed_page_urls, kFaviconURL12); |
1326 ASSERT_EQ(2u, updated_nodes_.size()); | 1350 ASSERT_EQ(2u, updated_nodes_.size()); |
1327 EXPECT_TRUE(WasNodeUpdated(node1)); | 1351 EXPECT_TRUE(WasNodeUpdated(node1)); |
1328 EXPECT_TRUE(WasNodeUpdated(node2)); | 1352 EXPECT_TRUE(WasNodeUpdated(node2)); |
1329 } | 1353 } |
1330 } | 1354 } |
1331 | 1355 |
1332 } // namespace bookmarks | 1356 } // namespace bookmarks |
OLD | NEW |