OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 <vector> | 5 #include <vector> |
6 | 6 |
7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
8 #include "base/path_service.h" | 8 #include "base/path_service.h" |
9 #include "base/string_util.h" | 9 #include "base/string_util.h" |
10 #include "chrome/browser/history/history.h" | 10 #include "chrome/browser/history/history.h" |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 file_util::Delete(db_file_, false); | 70 file_util::Delete(db_file_, false); |
71 | 71 |
72 // Copy db file over that contains starred table. | 72 // Copy db file over that contains starred table. |
73 FilePath old_history_path; | 73 FilePath old_history_path; |
74 PathService::Get(chrome::DIR_TEST_DATA, &old_history_path); | 74 PathService::Get(chrome::DIR_TEST_DATA, &old_history_path); |
75 old_history_path = old_history_path.AppendASCII("bookmarks"); | 75 old_history_path = old_history_path.AppendASCII("bookmarks"); |
76 old_history_path = old_history_path.Append( | 76 old_history_path = old_history_path.Append( |
77 FILE_PATH_LITERAL("History_with_empty_starred")); | 77 FILE_PATH_LITERAL("History_with_empty_starred")); |
78 file_util::CopyFile(old_history_path, db_file_); | 78 file_util::CopyFile(old_history_path, db_file_); |
79 | 79 |
80 EXPECT_EQ(SQLITE_OK, | 80 EXPECT_EQ(SQLITE_OK, |
81 sqlite3_open(WideToUTF8(db_file_.ToWStringHack()).c_str(), &db_)); | 81 sqlite3_open(WideToUTF8(db_file_.ToWStringHack()).c_str(), &db_)); |
82 statement_cache_ = new SqliteStatementCache(db_); | 82 statement_cache_ = new SqliteStatementCache(db_); |
83 | 83 |
84 // Initialize the tables for this test. | 84 // Initialize the tables for this test. |
85 CreateURLTable(false); | 85 CreateURLTable(false); |
86 CreateMainURLIndex(); | 86 CreateMainURLIndex(); |
87 EnsureStarredIntegrity(); | 87 EnsureStarredIntegrity(); |
88 } | 88 } |
89 void TearDown() { | 89 void TearDown() { |
90 delete statement_cache_; | 90 delete statement_cache_; |
(...skipping 10 matching lines...) Expand all Loading... |
101 } | 101 } |
102 | 102 |
103 FilePath db_file_; | 103 FilePath db_file_; |
104 sqlite3* db_; | 104 sqlite3* db_; |
105 SqliteStatementCache* statement_cache_; | 105 SqliteStatementCache* statement_cache_; |
106 }; | 106 }; |
107 | 107 |
108 //----------------------------------------------------------------------------- | 108 //----------------------------------------------------------------------------- |
109 | 109 |
110 TEST_F(StarredURLDatabaseTest, FixOrphanedGroup) { | 110 TEST_F(StarredURLDatabaseTest, FixOrphanedGroup) { |
111 const size_t initial_count = GetStarredEntryCount(); | 111 const int initial_count = GetStarredEntryCount(); |
112 | 112 |
113 // Create a group that isn't parented to the other/bookmark folders. | 113 // Create a group that isn't parented to the other/bookmark folders. |
114 StarredEntry g_entry; | 114 StarredEntry g_entry; |
115 g_entry.type = StarredEntry::USER_GROUP; | 115 g_entry.type = StarredEntry::USER_GROUP; |
116 g_entry.parent_group_id = 100; | 116 g_entry.parent_group_id = 100; |
117 g_entry.visual_order = 10; | 117 g_entry.visual_order = 10; |
118 g_entry.group_id = 100; | 118 g_entry.group_id = 100; |
119 CreateStarredEntry(&g_entry); | 119 CreateStarredEntry(&g_entry); |
120 | 120 |
121 ASSERT_TRUE(EnsureStarredIntegrity()); | 121 ASSERT_TRUE(EnsureStarredIntegrity()); |
122 | 122 |
123 // Make sure no new entries were added. | 123 // Make sure no new entries were added. |
124 ASSERT_EQ(initial_count + 1, GetStarredEntryCount()); | 124 ASSERT_EQ(initial_count + 1, GetStarredEntryCount()); |
125 | 125 |
126 // Make sure the group was moved to the bookmark bar folder. | 126 // Make sure the group was moved to the bookmark bar folder. |
127 ASSERT_TRUE(GetStarredEntry(g_entry.id, &g_entry)); | 127 ASSERT_TRUE(GetStarredEntry(g_entry.id, &g_entry)); |
128 ASSERT_EQ(HistoryService::kBookmarkBarID, g_entry.parent_group_id); | 128 ASSERT_EQ(HistoryService::kBookmarkBarID, g_entry.parent_group_id); |
129 ASSERT_EQ(0, g_entry.visual_order); | 129 ASSERT_EQ(0, g_entry.visual_order); |
130 } | 130 } |
131 | 131 |
132 TEST_F(StarredURLDatabaseTest, FixOrphanedBookmarks) { | 132 TEST_F(StarredURLDatabaseTest, FixOrphanedBookmarks) { |
133 const size_t initial_count = GetStarredEntryCount(); | 133 const int initial_count = GetStarredEntryCount(); |
134 | 134 |
135 // Create two bookmarks that aren't in a random folder no on the bookmark bar. | 135 // Create two bookmarks that aren't in a random folder no on the bookmark bar. |
136 StarredEntry entry1; | 136 StarredEntry entry1; |
137 entry1.parent_group_id = 100; | 137 entry1.parent_group_id = 100; |
138 entry1.visual_order = 10; | 138 entry1.visual_order = 10; |
139 entry1.url = GURL(L"http://google.com/1"); | 139 entry1.url = GURL("http://google.com/1"); |
140 CreateStarredEntry(&entry1); | 140 CreateStarredEntry(&entry1); |
141 | 141 |
142 StarredEntry entry2; | 142 StarredEntry entry2; |
143 entry2.parent_group_id = 101; | 143 entry2.parent_group_id = 101; |
144 entry2.visual_order = 20; | 144 entry2.visual_order = 20; |
145 entry2.url = GURL(L"http://google.com/2"); | 145 entry2.url = GURL("http://google.com/2"); |
146 CreateStarredEntry(&entry2); | 146 CreateStarredEntry(&entry2); |
147 | 147 |
148 ASSERT_TRUE(EnsureStarredIntegrity()); | 148 ASSERT_TRUE(EnsureStarredIntegrity()); |
149 | 149 |
150 // Make sure no new entries were added. | 150 // Make sure no new entries were added. |
151 ASSERT_EQ(initial_count + 2, GetStarredEntryCount()); | 151 ASSERT_EQ(initial_count + 2, GetStarredEntryCount()); |
152 | 152 |
153 // Make sure the entries were moved to the bookmark bar and the visual order | 153 // Make sure the entries were moved to the bookmark bar and the visual order |
154 // order was updated appropriately. | 154 // order was updated appropriately. |
155 ASSERT_TRUE(GetStarredEntry(entry1.id, &entry1)); | 155 ASSERT_TRUE(GetStarredEntry(entry1.id, &entry1)); |
156 ASSERT_EQ(HistoryService::kBookmarkBarID, entry1.parent_group_id); | 156 ASSERT_EQ(HistoryService::kBookmarkBarID, entry1.parent_group_id); |
157 | 157 |
158 ASSERT_TRUE(GetStarredEntry(entry2.id, &entry2)); | 158 ASSERT_TRUE(GetStarredEntry(entry2.id, &entry2)); |
159 ASSERT_EQ(HistoryService::kBookmarkBarID, entry2.parent_group_id); | 159 ASSERT_EQ(HistoryService::kBookmarkBarID, entry2.parent_group_id); |
160 ASSERT_TRUE((entry1.visual_order == 0 && entry2.visual_order == 1) || | 160 ASSERT_TRUE((entry1.visual_order == 0 && entry2.visual_order == 1) || |
161 (entry1.visual_order == 1 && entry2.visual_order == 0)); | 161 (entry1.visual_order == 1 && entry2.visual_order == 0)); |
162 } | 162 } |
163 | 163 |
164 TEST_F(StarredURLDatabaseTest, FixGroupCycleDepth0) { | 164 TEST_F(StarredURLDatabaseTest, FixGroupCycleDepth0) { |
165 const size_t initial_count = GetStarredEntryCount(); | 165 const int initial_count = GetStarredEntryCount(); |
166 | 166 |
167 // Create a group that is parented to itself. | 167 // Create a group that is parented to itself. |
168 StarredEntry entry1; | 168 StarredEntry entry1; |
169 entry1.group_id = entry1.parent_group_id = 100; | 169 entry1.group_id = entry1.parent_group_id = 100; |
170 entry1.visual_order = 10; | 170 entry1.visual_order = 10; |
171 entry1.type = StarredEntry::USER_GROUP; | 171 entry1.type = StarredEntry::USER_GROUP; |
172 CreateStarredEntry(&entry1); | 172 CreateStarredEntry(&entry1); |
173 | 173 |
174 ASSERT_TRUE(EnsureStarredIntegrity()); | 174 ASSERT_TRUE(EnsureStarredIntegrity()); |
175 | 175 |
176 // Make sure no new entries were added. | 176 // Make sure no new entries were added. |
177 ASSERT_EQ(initial_count + 1, GetStarredEntryCount()); | 177 ASSERT_EQ(initial_count + 1, GetStarredEntryCount()); |
178 | 178 |
179 // Make sure the group were moved to the bookmark bar and the visual order | 179 // Make sure the group were moved to the bookmark bar and the visual order |
180 // order was updated appropriately. | 180 // order was updated appropriately. |
181 ASSERT_TRUE(GetStarredEntry(entry1.id, &entry1)); | 181 ASSERT_TRUE(GetStarredEntry(entry1.id, &entry1)); |
182 ASSERT_EQ(HistoryService::kBookmarkBarID, entry1.parent_group_id); | 182 ASSERT_EQ(HistoryService::kBookmarkBarID, entry1.parent_group_id); |
183 ASSERT_EQ(0, entry1.visual_order); | 183 ASSERT_EQ(0, entry1.visual_order); |
184 } | 184 } |
185 | 185 |
186 TEST_F(StarredURLDatabaseTest, FixGroupCycleDepth1) { | 186 TEST_F(StarredURLDatabaseTest, FixGroupCycleDepth1) { |
187 const size_t initial_count = GetStarredEntryCount(); | 187 const int initial_count = GetStarredEntryCount(); |
188 | 188 |
189 StarredEntry entry1; | 189 StarredEntry entry1; |
190 entry1.group_id = 100; | 190 entry1.group_id = 100; |
191 entry1.parent_group_id = 101; | 191 entry1.parent_group_id = 101; |
192 entry1.visual_order = 10; | 192 entry1.visual_order = 10; |
193 entry1.type = StarredEntry::USER_GROUP; | 193 entry1.type = StarredEntry::USER_GROUP; |
194 CreateStarredEntry(&entry1); | 194 CreateStarredEntry(&entry1); |
195 | 195 |
196 StarredEntry entry2; | 196 StarredEntry entry2; |
197 entry2.group_id = 101; | 197 entry2.group_id = 101; |
(...skipping 11 matching lines...) Expand all Loading... |
209 // breaks the cycle. | 209 // breaks the cycle. |
210 ASSERT_TRUE(GetStarredEntry(entry1.id, &entry1)); | 210 ASSERT_TRUE(GetStarredEntry(entry1.id, &entry1)); |
211 ASSERT_TRUE(GetStarredEntry(entry2.id, &entry2)); | 211 ASSERT_TRUE(GetStarredEntry(entry2.id, &entry2)); |
212 ASSERT_EQ(HistoryService::kBookmarkBarID, entry1.parent_group_id); | 212 ASSERT_EQ(HistoryService::kBookmarkBarID, entry1.parent_group_id); |
213 ASSERT_EQ(100, entry2.parent_group_id); | 213 ASSERT_EQ(100, entry2.parent_group_id); |
214 ASSERT_EQ(0, entry1.visual_order); | 214 ASSERT_EQ(0, entry1.visual_order); |
215 ASSERT_EQ(0, entry2.visual_order); | 215 ASSERT_EQ(0, entry2.visual_order); |
216 } | 216 } |
217 | 217 |
218 TEST_F(StarredURLDatabaseTest, FixVisualOrder) { | 218 TEST_F(StarredURLDatabaseTest, FixVisualOrder) { |
219 const size_t initial_count = GetStarredEntryCount(); | 219 const int initial_count = GetStarredEntryCount(); |
220 | 220 |
221 // Star two urls. | 221 // Star two urls. |
222 StarredEntry entry1; | 222 StarredEntry entry1; |
223 entry1.url = GURL(L"http://google.com/1"); | 223 entry1.url = GURL("http://google.com/1"); |
224 entry1.parent_group_id = HistoryService::kBookmarkBarID; | 224 entry1.parent_group_id = HistoryService::kBookmarkBarID; |
225 entry1.visual_order = 5; | 225 entry1.visual_order = 5; |
226 CreateStarredEntry(&entry1); | 226 CreateStarredEntry(&entry1); |
227 | 227 |
228 // Add url2 and star it. | 228 // Add url2 and star it. |
229 StarredEntry entry2; | 229 StarredEntry entry2; |
230 entry2.url = GURL(L"http://google.com/2"); | 230 entry2.url = GURL("http://google.com/2"); |
231 entry2.parent_group_id = HistoryService::kBookmarkBarID; | 231 entry2.parent_group_id = HistoryService::kBookmarkBarID; |
232 entry2.visual_order = 10; | 232 entry2.visual_order = 10; |
233 CreateStarredEntry(&entry2); | 233 CreateStarredEntry(&entry2); |
234 | 234 |
235 ASSERT_TRUE(EnsureStarredIntegrity()); | 235 ASSERT_TRUE(EnsureStarredIntegrity()); |
236 | 236 |
237 // Make sure no new entries were added. | 237 // Make sure no new entries were added. |
238 ASSERT_EQ(initial_count + 2, GetStarredEntryCount()); | 238 ASSERT_EQ(initial_count + 2, GetStarredEntryCount()); |
239 | 239 |
240 StarredEntry entry; | 240 StarredEntry entry; |
241 ASSERT_TRUE(GetStarredEntry(entry1.id, &entry)); | 241 ASSERT_TRUE(GetStarredEntry(entry1.id, &entry)); |
242 entry1.visual_order = 0; | 242 entry1.visual_order = 0; |
243 CompareEntryByID(entry1); | 243 CompareEntryByID(entry1); |
244 | 244 |
245 ASSERT_TRUE(GetStarredEntry(entry2.id, &entry)); | 245 ASSERT_TRUE(GetStarredEntry(entry2.id, &entry)); |
246 entry2.visual_order = 1; | 246 entry2.visual_order = 1; |
247 CompareEntryByID(entry2); | 247 CompareEntryByID(entry2); |
248 } | 248 } |
249 | 249 |
250 TEST_F(StarredURLDatabaseTest, FixDuplicateGroupIDs) { | 250 TEST_F(StarredURLDatabaseTest, FixDuplicateGroupIDs) { |
251 const size_t initial_count = GetStarredEntryCount(); | 251 const int initial_count = GetStarredEntryCount(); |
252 | 252 |
253 // Create two groups with the same group id. | 253 // Create two groups with the same group id. |
254 StarredEntry entry1; | 254 StarredEntry entry1; |
255 entry1.type = StarredEntry::USER_GROUP; | 255 entry1.type = StarredEntry::USER_GROUP; |
256 entry1.group_id = 10; | 256 entry1.group_id = 10; |
257 entry1.parent_group_id = HistoryService::kBookmarkBarID; | 257 entry1.parent_group_id = HistoryService::kBookmarkBarID; |
258 CreateStarredEntry(&entry1); | 258 CreateStarredEntry(&entry1); |
259 StarredEntry entry2 = entry1; | 259 StarredEntry entry2 = entry1; |
260 CreateStarredEntry(&entry2); | 260 CreateStarredEntry(&entry2); |
261 | 261 |
(...skipping 22 matching lines...) Expand all Loading... |
284 | 284 |
285 // Fix up the table. | 285 // Fix up the table. |
286 ASSERT_TRUE(EnsureStarredIntegrity()); | 286 ASSERT_TRUE(EnsureStarredIntegrity()); |
287 | 287 |
288 // The entry we just created should have been nuked. | 288 // The entry we just created should have been nuked. |
289 ASSERT_EQ(initial_count, GetStarredEntryCount()); | 289 ASSERT_EQ(initial_count, GetStarredEntryCount()); |
290 } | 290 } |
291 | 291 |
292 } // namespace history | 292 } // namespace history |
293 | 293 |
OLD | NEW |