| OLD | NEW |
| 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 <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/scoped_temp_dir.h" | 9 #include "base/scoped_temp_dir.h" |
| 10 #include "base/string_util.h" | 10 #include "base/string_util.h" |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 112 g_entry.folder_id = 100; | 112 g_entry.folder_id = 100; |
| 113 CreateStarredEntry(&g_entry); | 113 CreateStarredEntry(&g_entry); |
| 114 | 114 |
| 115 ASSERT_TRUE(EnsureStarredIntegrity()); | 115 ASSERT_TRUE(EnsureStarredIntegrity()); |
| 116 | 116 |
| 117 // Make sure no new entries were added. | 117 // Make sure no new entries were added. |
| 118 ASSERT_EQ(initial_count + 1, GetStarredEntryCount()); | 118 ASSERT_EQ(initial_count + 1, GetStarredEntryCount()); |
| 119 | 119 |
| 120 // Make sure the folder was moved to the bookmark bar folder. | 120 // Make sure the folder was moved to the bookmark bar folder. |
| 121 ASSERT_TRUE(GetStarredEntry(g_entry.id, &g_entry)); | 121 ASSERT_TRUE(GetStarredEntry(g_entry.id, &g_entry)); |
| 122 ASSERT_EQ(HistoryService::kBookmarkBarID, g_entry.parent_folder_id); | 122 ASSERT_EQ(kBookmarkBarID, g_entry.parent_folder_id); |
| 123 ASSERT_EQ(0, g_entry.visual_order); | 123 ASSERT_EQ(0, g_entry.visual_order); |
| 124 } | 124 } |
| 125 | 125 |
| 126 TEST_F(StarredURLDatabaseTest, FixOrphanedBookmarks) { | 126 TEST_F(StarredURLDatabaseTest, FixOrphanedBookmarks) { |
| 127 const int initial_count = GetStarredEntryCount(); | 127 const int initial_count = GetStarredEntryCount(); |
| 128 | 128 |
| 129 // Create two bookmarks that aren't in a random folder no on the bookmark bar. | 129 // Create two bookmarks that aren't in a random folder no on the bookmark bar. |
| 130 StarredEntry entry1; | 130 StarredEntry entry1; |
| 131 entry1.parent_folder_id = 100; | 131 entry1.parent_folder_id = 100; |
| 132 entry1.visual_order = 10; | 132 entry1.visual_order = 10; |
| 133 entry1.url = GURL("http://google.com/1"); | 133 entry1.url = GURL("http://google.com/1"); |
| 134 CreateStarredEntry(&entry1); | 134 CreateStarredEntry(&entry1); |
| 135 | 135 |
| 136 StarredEntry entry2; | 136 StarredEntry entry2; |
| 137 entry2.parent_folder_id = 101; | 137 entry2.parent_folder_id = 101; |
| 138 entry2.visual_order = 20; | 138 entry2.visual_order = 20; |
| 139 entry2.url = GURL("http://google.com/2"); | 139 entry2.url = GURL("http://google.com/2"); |
| 140 CreateStarredEntry(&entry2); | 140 CreateStarredEntry(&entry2); |
| 141 | 141 |
| 142 ASSERT_TRUE(EnsureStarredIntegrity()); | 142 ASSERT_TRUE(EnsureStarredIntegrity()); |
| 143 | 143 |
| 144 // Make sure no new entries were added. | 144 // Make sure no new entries were added. |
| 145 ASSERT_EQ(initial_count + 2, GetStarredEntryCount()); | 145 ASSERT_EQ(initial_count + 2, GetStarredEntryCount()); |
| 146 | 146 |
| 147 // Make sure the entries were moved to the bookmark bar and the visual order | 147 // Make sure the entries were moved to the bookmark bar and the visual order |
| 148 // order was updated appropriately. | 148 // order was updated appropriately. |
| 149 ASSERT_TRUE(GetStarredEntry(entry1.id, &entry1)); | 149 ASSERT_TRUE(GetStarredEntry(entry1.id, &entry1)); |
| 150 ASSERT_EQ(HistoryService::kBookmarkBarID, entry1.parent_folder_id); | 150 ASSERT_EQ(kBookmarkBarID, entry1.parent_folder_id); |
| 151 | 151 |
| 152 ASSERT_TRUE(GetStarredEntry(entry2.id, &entry2)); | 152 ASSERT_TRUE(GetStarredEntry(entry2.id, &entry2)); |
| 153 ASSERT_EQ(HistoryService::kBookmarkBarID, entry2.parent_folder_id); | 153 ASSERT_EQ(kBookmarkBarID, entry2.parent_folder_id); |
| 154 ASSERT_TRUE((entry1.visual_order == 0 && entry2.visual_order == 1) || | 154 ASSERT_TRUE((entry1.visual_order == 0 && entry2.visual_order == 1) || |
| 155 (entry1.visual_order == 1 && entry2.visual_order == 0)); | 155 (entry1.visual_order == 1 && entry2.visual_order == 0)); |
| 156 } | 156 } |
| 157 | 157 |
| 158 TEST_F(StarredURLDatabaseTest, FixFolderCycleDepth0) { | 158 TEST_F(StarredURLDatabaseTest, FixFolderCycleDepth0) { |
| 159 const int initial_count = GetStarredEntryCount(); | 159 const int initial_count = GetStarredEntryCount(); |
| 160 | 160 |
| 161 // Create a folder that is parented to itself. | 161 // Create a folder that is parented to itself. |
| 162 StarredEntry entry1; | 162 StarredEntry entry1; |
| 163 entry1.folder_id = entry1.parent_folder_id = 100; | 163 entry1.folder_id = entry1.parent_folder_id = 100; |
| 164 entry1.visual_order = 10; | 164 entry1.visual_order = 10; |
| 165 entry1.type = StarredEntry::USER_FOLDER; | 165 entry1.type = StarredEntry::USER_FOLDER; |
| 166 CreateStarredEntry(&entry1); | 166 CreateStarredEntry(&entry1); |
| 167 | 167 |
| 168 ASSERT_TRUE(EnsureStarredIntegrity()); | 168 ASSERT_TRUE(EnsureStarredIntegrity()); |
| 169 | 169 |
| 170 // Make sure no new entries were added. | 170 // Make sure no new entries were added. |
| 171 ASSERT_EQ(initial_count + 1, GetStarredEntryCount()); | 171 ASSERT_EQ(initial_count + 1, GetStarredEntryCount()); |
| 172 | 172 |
| 173 // Make sure the folder were moved to the bookmark bar and the visual order | 173 // Make sure the folder were moved to the bookmark bar and the visual order |
| 174 // order was updated appropriately. | 174 // order was updated appropriately. |
| 175 ASSERT_TRUE(GetStarredEntry(entry1.id, &entry1)); | 175 ASSERT_TRUE(GetStarredEntry(entry1.id, &entry1)); |
| 176 ASSERT_EQ(HistoryService::kBookmarkBarID, entry1.parent_folder_id); | 176 ASSERT_EQ(kBookmarkBarID, entry1.parent_folder_id); |
| 177 ASSERT_EQ(0, entry1.visual_order); | 177 ASSERT_EQ(0, entry1.visual_order); |
| 178 } | 178 } |
| 179 | 179 |
| 180 TEST_F(StarredURLDatabaseTest, FixFolderCycleDepth1) { | 180 TEST_F(StarredURLDatabaseTest, FixFolderCycleDepth1) { |
| 181 const int initial_count = GetStarredEntryCount(); | 181 const int initial_count = GetStarredEntryCount(); |
| 182 | 182 |
| 183 StarredEntry entry1; | 183 StarredEntry entry1; |
| 184 entry1.folder_id = 100; | 184 entry1.folder_id = 100; |
| 185 entry1.parent_folder_id = 101; | 185 entry1.parent_folder_id = 101; |
| 186 entry1.visual_order = 10; | 186 entry1.visual_order = 10; |
| 187 entry1.type = StarredEntry::USER_FOLDER; | 187 entry1.type = StarredEntry::USER_FOLDER; |
| 188 CreateStarredEntry(&entry1); | 188 CreateStarredEntry(&entry1); |
| 189 | 189 |
| 190 StarredEntry entry2; | 190 StarredEntry entry2; |
| 191 entry2.folder_id = 101; | 191 entry2.folder_id = 101; |
| 192 entry2.parent_folder_id = 100; | 192 entry2.parent_folder_id = 100; |
| 193 entry2.visual_order = 11; | 193 entry2.visual_order = 11; |
| 194 entry2.type = StarredEntry::USER_FOLDER; | 194 entry2.type = StarredEntry::USER_FOLDER; |
| 195 CreateStarredEntry(&entry2); | 195 CreateStarredEntry(&entry2); |
| 196 | 196 |
| 197 ASSERT_TRUE(EnsureStarredIntegrity()); | 197 ASSERT_TRUE(EnsureStarredIntegrity()); |
| 198 | 198 |
| 199 // Make sure no new entries were added. | 199 // Make sure no new entries were added. |
| 200 ASSERT_EQ(initial_count + 2, GetStarredEntryCount()); | 200 ASSERT_EQ(initial_count + 2, GetStarredEntryCount()); |
| 201 | 201 |
| 202 // Because the folders caused a cycle, entry1 is moved the bookmark bar, which | 202 // Because the folders caused a cycle, entry1 is moved the bookmark bar, which |
| 203 // breaks the cycle. | 203 // breaks the cycle. |
| 204 ASSERT_TRUE(GetStarredEntry(entry1.id, &entry1)); | 204 ASSERT_TRUE(GetStarredEntry(entry1.id, &entry1)); |
| 205 ASSERT_TRUE(GetStarredEntry(entry2.id, &entry2)); | 205 ASSERT_TRUE(GetStarredEntry(entry2.id, &entry2)); |
| 206 ASSERT_EQ(HistoryService::kBookmarkBarID, entry1.parent_folder_id); | 206 ASSERT_EQ(kBookmarkBarID, entry1.parent_folder_id); |
| 207 ASSERT_EQ(100, entry2.parent_folder_id); | 207 ASSERT_EQ(100, entry2.parent_folder_id); |
| 208 ASSERT_EQ(0, entry1.visual_order); | 208 ASSERT_EQ(0, entry1.visual_order); |
| 209 ASSERT_EQ(0, entry2.visual_order); | 209 ASSERT_EQ(0, entry2.visual_order); |
| 210 } | 210 } |
| 211 | 211 |
| 212 TEST_F(StarredURLDatabaseTest, FixVisualOrder) { | 212 TEST_F(StarredURLDatabaseTest, FixVisualOrder) { |
| 213 const int initial_count = GetStarredEntryCount(); | 213 const int initial_count = GetStarredEntryCount(); |
| 214 | 214 |
| 215 // Star two urls. | 215 // Star two urls. |
| 216 StarredEntry entry1; | 216 StarredEntry entry1; |
| 217 entry1.url = GURL("http://google.com/1"); | 217 entry1.url = GURL("http://google.com/1"); |
| 218 entry1.parent_folder_id = HistoryService::kBookmarkBarID; | 218 entry1.parent_folder_id = kBookmarkBarID; |
| 219 entry1.visual_order = 5; | 219 entry1.visual_order = 5; |
| 220 CreateStarredEntry(&entry1); | 220 CreateStarredEntry(&entry1); |
| 221 | 221 |
| 222 // Add url2 and star it. | 222 // Add url2 and star it. |
| 223 StarredEntry entry2; | 223 StarredEntry entry2; |
| 224 entry2.url = GURL("http://google.com/2"); | 224 entry2.url = GURL("http://google.com/2"); |
| 225 entry2.parent_folder_id = HistoryService::kBookmarkBarID; | 225 entry2.parent_folder_id = kBookmarkBarID; |
| 226 entry2.visual_order = 10; | 226 entry2.visual_order = 10; |
| 227 CreateStarredEntry(&entry2); | 227 CreateStarredEntry(&entry2); |
| 228 | 228 |
| 229 ASSERT_TRUE(EnsureStarredIntegrity()); | 229 ASSERT_TRUE(EnsureStarredIntegrity()); |
| 230 | 230 |
| 231 // Make sure no new entries were added. | 231 // Make sure no new entries were added. |
| 232 ASSERT_EQ(initial_count + 2, GetStarredEntryCount()); | 232 ASSERT_EQ(initial_count + 2, GetStarredEntryCount()); |
| 233 | 233 |
| 234 StarredEntry entry; | 234 StarredEntry entry; |
| 235 ASSERT_TRUE(GetStarredEntry(entry1.id, &entry)); | 235 ASSERT_TRUE(GetStarredEntry(entry1.id, &entry)); |
| 236 entry1.visual_order = 0; | 236 entry1.visual_order = 0; |
| 237 CompareEntryByID(entry1); | 237 CompareEntryByID(entry1); |
| 238 | 238 |
| 239 ASSERT_TRUE(GetStarredEntry(entry2.id, &entry)); | 239 ASSERT_TRUE(GetStarredEntry(entry2.id, &entry)); |
| 240 entry2.visual_order = 1; | 240 entry2.visual_order = 1; |
| 241 CompareEntryByID(entry2); | 241 CompareEntryByID(entry2); |
| 242 } | 242 } |
| 243 | 243 |
| 244 TEST_F(StarredURLDatabaseTest, FixDuplicateFolderIDs) { | 244 TEST_F(StarredURLDatabaseTest, FixDuplicateFolderIDs) { |
| 245 const int initial_count = GetStarredEntryCount(); | 245 const int initial_count = GetStarredEntryCount(); |
| 246 | 246 |
| 247 // Create two folders with the same folder id. | 247 // Create two folders with the same folder id. |
| 248 StarredEntry entry1; | 248 StarredEntry entry1; |
| 249 entry1.type = StarredEntry::USER_FOLDER; | 249 entry1.type = StarredEntry::USER_FOLDER; |
| 250 entry1.folder_id = 10; | 250 entry1.folder_id = 10; |
| 251 entry1.parent_folder_id = HistoryService::kBookmarkBarID; | 251 entry1.parent_folder_id = kBookmarkBarID; |
| 252 CreateStarredEntry(&entry1); | 252 CreateStarredEntry(&entry1); |
| 253 StarredEntry entry2 = entry1; | 253 StarredEntry entry2 = entry1; |
| 254 CreateStarredEntry(&entry2); | 254 CreateStarredEntry(&entry2); |
| 255 | 255 |
| 256 ASSERT_TRUE(EnsureStarredIntegrity()); | 256 ASSERT_TRUE(EnsureStarredIntegrity()); |
| 257 | 257 |
| 258 // Make sure only one folder exists. | 258 // Make sure only one folder exists. |
| 259 ASSERT_EQ(initial_count + 1, GetStarredEntryCount()); | 259 ASSERT_EQ(initial_count + 1, GetStarredEntryCount()); |
| 260 | 260 |
| 261 StarredEntry entry; | 261 StarredEntry entry; |
| 262 ASSERT_TRUE(GetStarredEntry(entry1.id, &entry) || | 262 ASSERT_TRUE(GetStarredEntry(entry1.id, &entry) || |
| 263 GetStarredEntry(entry2.id, &entry)); | 263 GetStarredEntry(entry2.id, &entry)); |
| 264 } | 264 } |
| 265 | 265 |
| 266 TEST_F(StarredURLDatabaseTest, RemoveStarredEntriesWithEmptyURL) { | 266 TEST_F(StarredURLDatabaseTest, RemoveStarredEntriesWithEmptyURL) { |
| 267 const int initial_count = GetStarredEntryCount(); | 267 const int initial_count = GetStarredEntryCount(); |
| 268 | 268 |
| 269 StarredEntry entry; | 269 StarredEntry entry; |
| 270 entry.url = GURL("http://google.com"); | 270 entry.url = GURL("http://google.com"); |
| 271 entry.title = UTF8ToUTF16("FOO"); | 271 entry.title = UTF8ToUTF16("FOO"); |
| 272 entry.parent_folder_id = HistoryService::kBookmarkBarID; | 272 entry.parent_folder_id = kBookmarkBarID; |
| 273 | 273 |
| 274 ASSERT_NE(0, CreateStarredEntry(&entry)); | 274 ASSERT_NE(0, CreateStarredEntry(&entry)); |
| 275 | 275 |
| 276 // Remove the URL. | 276 // Remove the URL. |
| 277 DeleteURLRow(entry.url_id); | 277 DeleteURLRow(entry.url_id); |
| 278 | 278 |
| 279 // Fix up the table. | 279 // Fix up the table. |
| 280 ASSERT_TRUE(EnsureStarredIntegrity()); | 280 ASSERT_TRUE(EnsureStarredIntegrity()); |
| 281 | 281 |
| 282 // The entry we just created should have been nuked. | 282 // The entry we just created should have been nuked. |
| 283 ASSERT_EQ(initial_count, GetStarredEntryCount()); | 283 ASSERT_EQ(initial_count, GetStarredEntryCount()); |
| 284 } | 284 } |
| 285 | 285 |
| 286 } // namespace history | 286 } // namespace history |
| OLD | NEW |