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 |