Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Side by Side Diff: chrome/browser/history/shortcuts_database_unittest.cc

Issue 9689085: Clean up ShortcutsProvider and related classes. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "base/file_util.h" 5 #include "base/file_util.h"
6 #include "base/path_service.h" 6 #include "base/path_service.h"
7 #include "base/scoped_temp_dir.h" 7 #include "base/scoped_temp_dir.h"
8 #include "base/stringprintf.h" 8 #include "base/stringprintf.h"
9 #include "base/time.h" 9 #include "base/time.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
11 #include "chrome/browser/autocomplete/shortcuts_provider_shortcut.h"
12 #include "chrome/browser/history/shortcuts_database.h" 11 #include "chrome/browser/history/shortcuts_database.h"
13 #include "chrome/common/guid.h" 12 #include "chrome/common/guid.h"
14 #include "sql/statement.h" 13 #include "sql/statement.h"
15 14
16 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
17 16
18 using base::Time;
19 using base::TimeDelta;
20 using shortcuts_provider::Shortcut;
21 using shortcuts_provider::ShortcutMap;
22
23 namespace history { 17 namespace history {
24 18
25 struct ShortcutsDatabaseTestInfo { 19 struct ShortcutsDatabaseTestInfo {
26 std::string guid; 20 std::string guid;
27 std::string url; 21 std::string url;
28 std::string title; // The text that orginally was searched for. 22 std::string title; // The text that orginally was searched for.
29 std::string contents; 23 std::string contents;
30 std::string contents_class; 24 std::string contents_class;
31 std::string description; 25 std::string description;
32 std::string description_class; 26 std::string description_class;
(...skipping 14 matching lines...) Expand all
47 }; 41 };
48 42
49 class ShortcutsDatabaseTest : public testing::Test { 43 class ShortcutsDatabaseTest : public testing::Test {
50 public: 44 public:
51 void SetUp(); 45 void SetUp();
52 void TearDown(); 46 void TearDown();
53 47
54 void ClearDB(); 48 void ClearDB();
55 size_t CountRecords() const; 49 size_t CountRecords() const;
56 50
57 Shortcut ShortcutFromTestInfo(const ShortcutsDatabaseTestInfo& info); 51 ShortcutsBackend::Shortcut ShortcutFromTestInfo(
52 const ShortcutsDatabaseTestInfo& info);
58 53
59 void AddAll(); 54 void AddAll();
60 55
61 ScopedTempDir temp_dir_; 56 ScopedTempDir temp_dir_;
62 scoped_refptr<ShortcutsDatabase> db_; 57 scoped_refptr<ShortcutsDatabase> db_;
63 }; 58 };
64 59
65 void ShortcutsDatabaseTest::SetUp() { 60 void ShortcutsDatabaseTest::SetUp() {
66 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); 61 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
67 db_ = new ShortcutsDatabase(temp_dir_.path()); 62 db_ = new ShortcutsDatabase(temp_dir_.path());
(...skipping 11 matching lines...) Expand all
79 EXPECT_TRUE(s.Run()); 74 EXPECT_TRUE(s.Run());
80 } 75 }
81 76
82 size_t ShortcutsDatabaseTest::CountRecords() const { 77 size_t ShortcutsDatabaseTest::CountRecords() const {
83 sql::Statement s(db_->db_.GetUniqueStatement( 78 sql::Statement s(db_->db_.GetUniqueStatement(
84 "SELECT count(*) FROM omni_box_shortcuts")); 79 "SELECT count(*) FROM omni_box_shortcuts"));
85 EXPECT_TRUE(s.Step()); 80 EXPECT_TRUE(s.Step());
86 return static_cast<size_t>(s.ColumnInt(0)); 81 return static_cast<size_t>(s.ColumnInt(0));
87 } 82 }
88 83
89 Shortcut ShortcutsDatabaseTest::ShortcutFromTestInfo( 84 ShortcutsBackend::Shortcut ShortcutsDatabaseTest::ShortcutFromTestInfo(
90 const ShortcutsDatabaseTestInfo& info) { 85 const ShortcutsDatabaseTestInfo& info) {
91 Time visit_time = Time::Now() - TimeDelta::FromDays(info.days_from_now); 86 return ShortcutsBackend::Shortcut(info.guid, ASCIIToUTF16(info.title),
92 return Shortcut(info.guid, 87 GURL(info.url), ASCIIToUTF16(info.contents),
93 ASCIIToUTF16(info.title), 88 AutocompleteMatch::ClassificationsFromString(info.contents_class),
94 ASCIIToUTF16(info.url), 89 ASCIIToUTF16(info.description),
95 ASCIIToUTF16(info.contents), 90 AutocompleteMatch::ClassificationsFromString(info.description_class),
96 ASCIIToUTF16(info.contents_class), 91 base::Time::Now() - base::TimeDelta::FromDays(info.days_from_now),
97 ASCIIToUTF16(info.description), 92 info.typed_count);
98 ASCIIToUTF16(info.description_class),
99 visit_time.ToInternalValue(),
100 info.typed_count);
101 } 93 }
102 94
103 void ShortcutsDatabaseTest::AddAll() { 95 void ShortcutsDatabaseTest::AddAll() {
104 ClearDB(); 96 ClearDB();
105 for (size_t i = 0; i < arraysize(shortcut_test_db); ++i) { 97 for (size_t i = 0; i < arraysize(shortcut_test_db); ++i) {
106 db_->AddShortcut(ShortcutFromTestInfo(shortcut_test_db[i])); 98 db_->AddShortcut(ShortcutFromTestInfo(shortcut_test_db[i]));
107 } 99 }
108 EXPECT_EQ(arraysize(shortcut_test_db), CountRecords()); 100 EXPECT_EQ(arraysize(shortcut_test_db), CountRecords());
109 } 101 }
110 102
111 TEST_F(ShortcutsDatabaseTest, AddShortcut) { 103 TEST_F(ShortcutsDatabaseTest, AddShortcut) {
112 ClearDB(); 104 ClearDB();
113 EXPECT_EQ(0U, CountRecords()); 105 EXPECT_EQ(0U, CountRecords());
114 EXPECT_TRUE(db_->AddShortcut(ShortcutFromTestInfo(shortcut_test_db[0]))); 106 EXPECT_TRUE(db_->AddShortcut(ShortcutFromTestInfo(shortcut_test_db[0])));
115 EXPECT_EQ(1U, CountRecords()); 107 EXPECT_EQ(1U, CountRecords());
116 EXPECT_TRUE(db_->AddShortcut(ShortcutFromTestInfo(shortcut_test_db[1]))); 108 EXPECT_TRUE(db_->AddShortcut(ShortcutFromTestInfo(shortcut_test_db[1])));
117 EXPECT_EQ(2U, CountRecords()); 109 EXPECT_EQ(2U, CountRecords());
118 EXPECT_TRUE(db_->AddShortcut(ShortcutFromTestInfo(shortcut_test_db[2]))); 110 EXPECT_TRUE(db_->AddShortcut(ShortcutFromTestInfo(shortcut_test_db[2])));
119 EXPECT_EQ(3U, CountRecords()); 111 EXPECT_EQ(3U, CountRecords());
120 } 112 }
121 113
122 TEST_F(ShortcutsDatabaseTest, UpdateShortcut) { 114 TEST_F(ShortcutsDatabaseTest, UpdateShortcut) {
123 AddAll(); 115 AddAll();
124 Shortcut shortcut(ShortcutFromTestInfo(shortcut_test_db[1])); 116 ShortcutsBackend::Shortcut shortcut(
117 ShortcutFromTestInfo(shortcut_test_db[1]));
125 shortcut.contents = ASCIIToUTF16("gro.todhsals"); 118 shortcut.contents = ASCIIToUTF16("gro.todhsals");
126 EXPECT_TRUE(db_->UpdateShortcut(shortcut)); 119 EXPECT_TRUE(db_->UpdateShortcut(shortcut));
127 std::map<std::string, Shortcut> shortcuts; 120 ShortcutsDatabase::GuidToShortcutMap shortcuts;
128 EXPECT_TRUE(db_->LoadShortcuts(&shortcuts)); 121 EXPECT_TRUE(db_->LoadShortcuts(&shortcuts));
129 std::map<std::string, Shortcut>::iterator it = shortcuts.find(shortcut.id); 122 ShortcutsDatabase::GuidToShortcutMap::iterator it =
123 shortcuts.find(shortcut.id);
130 EXPECT_TRUE(it != shortcuts.end()); 124 EXPECT_TRUE(it != shortcuts.end());
131 EXPECT_TRUE(it->second.contents == shortcut.contents); 125 EXPECT_TRUE(it->second.contents == shortcut.contents);
132 } 126 }
133 127
134 TEST_F(ShortcutsDatabaseTest, DeleteShortcutsWithIds) { 128 TEST_F(ShortcutsDatabaseTest, DeleteShortcutsWithIds) {
135 AddAll(); 129 AddAll();
136 std::vector<std::string> shortcut_ids; 130 std::vector<std::string> shortcut_ids;
137 shortcut_ids.push_back(shortcut_test_db[0].guid); 131 shortcut_ids.push_back(shortcut_test_db[0].guid);
138 shortcut_ids.push_back(shortcut_test_db[2].guid); 132 shortcut_ids.push_back(shortcut_test_db[2].guid);
139 EXPECT_TRUE(db_->DeleteShortcutsWithIds(shortcut_ids)); 133 EXPECT_TRUE(db_->DeleteShortcutsWithIds(shortcut_ids));
140 EXPECT_EQ(arraysize(shortcut_test_db) - 2, CountRecords()); 134 EXPECT_EQ(arraysize(shortcut_test_db) - 2, CountRecords());
141 135
142 std::map<std::string, Shortcut> shortcuts; 136 ShortcutsDatabase::GuidToShortcutMap shortcuts;
143 EXPECT_TRUE(db_->LoadShortcuts(&shortcuts)); 137 EXPECT_TRUE(db_->LoadShortcuts(&shortcuts));
144 138
145 std::map<std::string, Shortcut>::iterator it = 139 ShortcutsDatabase::GuidToShortcutMap::iterator it =
146 shortcuts.find(shortcut_test_db[0].guid); 140 shortcuts.find(shortcut_test_db[0].guid);
147 EXPECT_TRUE(it == shortcuts.end()); 141 EXPECT_TRUE(it == shortcuts.end());
148 142
149 it = shortcuts.find(shortcut_test_db[1].guid); 143 it = shortcuts.find(shortcut_test_db[1].guid);
150 EXPECT_TRUE(it != shortcuts.end()); 144 EXPECT_TRUE(it != shortcuts.end());
151 145
152 it = shortcuts.find(shortcut_test_db[2].guid); 146 it = shortcuts.find(shortcut_test_db[2].guid);
153 EXPECT_TRUE(it == shortcuts.end()); 147 EXPECT_TRUE(it == shortcuts.end());
154 } 148 }
155 149
156 TEST_F(ShortcutsDatabaseTest, DeleteShortcutsWithUrl) { 150 TEST_F(ShortcutsDatabaseTest, DeleteShortcutsWithUrl) {
157 AddAll(); 151 AddAll();
158 152
159 EXPECT_TRUE(db_->DeleteShortcutsWithUrl("http://slashdot.org/")); 153 EXPECT_TRUE(db_->DeleteShortcutsWithUrl("http://slashdot.org/"));
160 EXPECT_EQ(arraysize(shortcut_test_db) - 2, CountRecords()); 154 EXPECT_EQ(arraysize(shortcut_test_db) - 2, CountRecords());
161 155
162 std::map<std::string, Shortcut> shortcuts; 156 ShortcutsDatabase::GuidToShortcutMap shortcuts;
163 EXPECT_TRUE(db_->LoadShortcuts(&shortcuts)); 157 EXPECT_TRUE(db_->LoadShortcuts(&shortcuts));
164 158
165 std::map<std::string, Shortcut>::iterator it = 159 ShortcutsDatabase::GuidToShortcutMap::iterator it =
166 shortcuts.find(shortcut_test_db[0].guid); 160 shortcuts.find(shortcut_test_db[0].guid);
167 EXPECT_TRUE(it != shortcuts.end()); 161 EXPECT_TRUE(it != shortcuts.end());
168 162
169 it = shortcuts.find(shortcut_test_db[1].guid); 163 it = shortcuts.find(shortcut_test_db[1].guid);
170 EXPECT_TRUE(it == shortcuts.end()); 164 EXPECT_TRUE(it == shortcuts.end());
171 165
172 it = shortcuts.find(shortcut_test_db[2].guid); 166 it = shortcuts.find(shortcut_test_db[2].guid);
173 EXPECT_TRUE(it == shortcuts.end()); 167 EXPECT_TRUE(it == shortcuts.end());
174 } 168 }
175 169
176 TEST_F(ShortcutsDatabaseTest, LoadShortcuts) { 170 TEST_F(ShortcutsDatabaseTest, LoadShortcuts) {
177 AddAll(); 171 AddAll();
178 std::map<std::string, Shortcut> shortcuts; 172 ShortcutsDatabase::GuidToShortcutMap shortcuts;
179 EXPECT_TRUE(db_->LoadShortcuts(&shortcuts)); 173 EXPECT_TRUE(db_->LoadShortcuts(&shortcuts));
180 174
181 for (size_t i = 0; i < arraysize(shortcut_test_db); ++i) { 175 for (size_t i = 0; i < arraysize(shortcut_test_db); ++i) {
182 SCOPED_TRACE(base::StringPrintf("Looking for shortcut #%d", 176 SCOPED_TRACE(base::StringPrintf("Looking for shortcut #%d",
183 static_cast<int>(i))); 177 static_cast<int>(i)));
184 EXPECT_TRUE(shortcuts.find(shortcut_test_db[i].guid) != shortcuts.end()); 178 EXPECT_TRUE(shortcuts.find(shortcut_test_db[i].guid) != shortcuts.end());
185 } 179 }
186 } 180 }
187 181
188 TEST_F(ShortcutsDatabaseTest, DeleteAllShortcuts) { 182 TEST_F(ShortcutsDatabaseTest, DeleteAllShortcuts) {
189 AddAll(); 183 AddAll();
190 std::map<std::string, Shortcut> shortcuts; 184 ShortcutsDatabase::GuidToShortcutMap shortcuts;
191 EXPECT_TRUE(db_->LoadShortcuts(&shortcuts)); 185 EXPECT_TRUE(db_->LoadShortcuts(&shortcuts));
192 EXPECT_EQ(arraysize(shortcut_test_db), shortcuts.size()); 186 EXPECT_EQ(arraysize(shortcut_test_db), shortcuts.size());
193 EXPECT_TRUE(db_->DeleteAllShortcuts()); 187 EXPECT_TRUE(db_->DeleteAllShortcuts());
194 EXPECT_TRUE(db_->LoadShortcuts(&shortcuts)); 188 EXPECT_TRUE(db_->LoadShortcuts(&shortcuts));
195 EXPECT_EQ(0U, shortcuts.size()); 189 EXPECT_EQ(0U, shortcuts.size());
196 } 190 }
197 191
198 } // namespace history 192 } // namespace history
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698