| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/ui/bookmarks/recently_used_folders_combo_model.h" | 5 #include "chrome/browser/ui/bookmarks/recently_used_folders_combo_model.h" |
| 6 | 6 |
| 7 #include <memory> |
| 8 |
| 7 #include "base/macros.h" | 9 #include "base/macros.h" |
| 8 #include "base/memory/scoped_ptr.h" | |
| 9 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
| 10 #include "base/strings/utf_string_conversions.h" | 11 #include "base/strings/utf_string_conversions.h" |
| 11 #include "components/bookmarks/browser/bookmark_model.h" | 12 #include "components/bookmarks/browser/bookmark_model.h" |
| 12 #include "components/bookmarks/test/bookmark_test_helpers.h" | 13 #include "components/bookmarks/test/bookmark_test_helpers.h" |
| 13 #include "components/bookmarks/test/test_bookmark_client.h" | 14 #include "components/bookmarks/test/test_bookmark_client.h" |
| 14 #include "content/public/test/test_browser_thread.h" | 15 #include "content/public/test/test_browser_thread.h" |
| 15 #include "testing/gtest/include/gtest/gtest.h" | 16 #include "testing/gtest/include/gtest/gtest.h" |
| 16 #include "ui/base/models/combobox_model_observer.h" | 17 #include "ui/base/models/combobox_model_observer.h" |
| 17 | 18 |
| 18 using bookmarks::BookmarkModel; | 19 using bookmarks::BookmarkModel; |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 DISALLOW_COPY_AND_ASSIGN(RecentlyUsedFoldersComboModelTest); | 58 DISALLOW_COPY_AND_ASSIGN(RecentlyUsedFoldersComboModelTest); |
| 58 }; | 59 }; |
| 59 | 60 |
| 60 RecentlyUsedFoldersComboModelTest::RecentlyUsedFoldersComboModelTest() | 61 RecentlyUsedFoldersComboModelTest::RecentlyUsedFoldersComboModelTest() |
| 61 : ui_thread_(BrowserThread::UI, &message_loop_), | 62 : ui_thread_(BrowserThread::UI, &message_loop_), |
| 62 file_thread_(BrowserThread::FILE, &message_loop_) { | 63 file_thread_(BrowserThread::FILE, &message_loop_) { |
| 63 } | 64 } |
| 64 | 65 |
| 65 // Verifies there are no duplicate nodes in the model. | 66 // Verifies there are no duplicate nodes in the model. |
| 66 TEST_F(RecentlyUsedFoldersComboModelTest, NoDups) { | 67 TEST_F(RecentlyUsedFoldersComboModelTest, NoDups) { |
| 67 scoped_ptr<BookmarkModel> bookmark_model(TestBookmarkClient::CreateModel()); | 68 std::unique_ptr<BookmarkModel> bookmark_model( |
| 69 TestBookmarkClient::CreateModel()); |
| 68 const BookmarkNode* new_node = bookmark_model->AddURL( | 70 const BookmarkNode* new_node = bookmark_model->AddURL( |
| 69 bookmark_model->bookmark_bar_node(), 0, base::ASCIIToUTF16("a"), | 71 bookmark_model->bookmark_bar_node(), 0, base::ASCIIToUTF16("a"), |
| 70 GURL("http://a")); | 72 GURL("http://a")); |
| 71 RecentlyUsedFoldersComboModel model(bookmark_model.get(), new_node); | 73 RecentlyUsedFoldersComboModel model(bookmark_model.get(), new_node); |
| 72 std::set<base::string16> items; | 74 std::set<base::string16> items; |
| 73 for (int i = 0; i < model.GetItemCount(); ++i) { | 75 for (int i = 0; i < model.GetItemCount(); ++i) { |
| 74 if (!model.IsItemSeparatorAt(i)) | 76 if (!model.IsItemSeparatorAt(i)) |
| 75 EXPECT_EQ(0u, items.count(model.GetItemAt(i))); | 77 EXPECT_EQ(0u, items.count(model.GetItemAt(i))); |
| 76 } | 78 } |
| 77 } | 79 } |
| 78 | 80 |
| 79 // Verifies that observers are notified on changes. | 81 // Verifies that observers are notified on changes. |
| 80 TEST_F(RecentlyUsedFoldersComboModelTest, NotifyObserver) { | 82 TEST_F(RecentlyUsedFoldersComboModelTest, NotifyObserver) { |
| 81 scoped_ptr<BookmarkModel> bookmark_model(TestBookmarkClient::CreateModel()); | 83 std::unique_ptr<BookmarkModel> bookmark_model( |
| 84 TestBookmarkClient::CreateModel()); |
| 82 const BookmarkNode* folder = bookmark_model->AddFolder( | 85 const BookmarkNode* folder = bookmark_model->AddFolder( |
| 83 bookmark_model->bookmark_bar_node(), 0, base::ASCIIToUTF16("a")); | 86 bookmark_model->bookmark_bar_node(), 0, base::ASCIIToUTF16("a")); |
| 84 const BookmarkNode* sub_folder = bookmark_model->AddFolder( | 87 const BookmarkNode* sub_folder = bookmark_model->AddFolder( |
| 85 folder, 0, base::ASCIIToUTF16("b")); | 88 folder, 0, base::ASCIIToUTF16("b")); |
| 86 const BookmarkNode* new_node = bookmark_model->AddURL( | 89 const BookmarkNode* new_node = bookmark_model->AddURL( |
| 87 sub_folder, 0, base::ASCIIToUTF16("a"), GURL("http://a")); | 90 sub_folder, 0, base::ASCIIToUTF16("a"), GURL("http://a")); |
| 88 RecentlyUsedFoldersComboModel model(bookmark_model.get(), new_node); | 91 RecentlyUsedFoldersComboModel model(bookmark_model.get(), new_node); |
| 89 TestComboboxModelObserver observer; | 92 TestComboboxModelObserver observer; |
| 90 model.AddObserver(&observer); | 93 model.AddObserver(&observer); |
| 91 | 94 |
| 92 const int initial_count = model.GetItemCount(); | 95 const int initial_count = model.GetItemCount(); |
| 93 // Remove a folder, it should remove an item from the model too. | 96 // Remove a folder, it should remove an item from the model too. |
| 94 bookmark_model->Remove(sub_folder); | 97 bookmark_model->Remove(sub_folder); |
| 95 EXPECT_TRUE(observer.GetAndClearChanged()); | 98 EXPECT_TRUE(observer.GetAndClearChanged()); |
| 96 const int updated_count = model.GetItemCount(); | 99 const int updated_count = model.GetItemCount(); |
| 97 EXPECT_LT(updated_count, initial_count); | 100 EXPECT_LT(updated_count, initial_count); |
| 98 | 101 |
| 99 // Remove all, which should remove a folder too. | 102 // Remove all, which should remove a folder too. |
| 100 bookmark_model->RemoveAllUserBookmarks(); | 103 bookmark_model->RemoveAllUserBookmarks(); |
| 101 EXPECT_TRUE(observer.GetAndClearChanged()); | 104 EXPECT_TRUE(observer.GetAndClearChanged()); |
| 102 EXPECT_LT(model.GetItemCount(), updated_count); | 105 EXPECT_LT(model.GetItemCount(), updated_count); |
| 103 | 106 |
| 104 model.RemoveObserver(&observer); | 107 model.RemoveObserver(&observer); |
| 105 } | 108 } |
| OLD | NEW |