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

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

Issue 10815068: Changes favicon database to support storing bitmaps of different sizes for the same icon_url (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 5 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) 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 <algorithm> 5 #include <algorithm>
6 #include <vector> 6 #include <vector>
7 7
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/file_path.h" 10 #include "base/file_path.h"
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 sql.append(name); 268 sql.append(name);
269 sql.append("(" 269 sql.append("("
270 "id INTEGER PRIMARY KEY," 270 "id INTEGER PRIMARY KEY,"
271 "url LONGVARCHAR NOT NULL," 271 "url LONGVARCHAR NOT NULL,"
272 "last_updated INTEGER DEFAULT 0," 272 "last_updated INTEGER DEFAULT 0,"
273 "image_data BLOB)"); 273 "image_data BLOB)");
274 EXPECT_TRUE(db.db_.Execute(sql.c_str())); 274 EXPECT_TRUE(db.db_.Execute(sql.c_str()));
275 275
276 EXPECT_TRUE(db.UpgradeToVersion4()); 276 EXPECT_TRUE(db.UpgradeToVersion4());
277 277
278 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); 278 GURL url("http://google.com");
279 scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data));
280 279
281 GURL url("http://google.com"); 280 sql::Statement statement;
282 FaviconID id = db.AddFavicon(url, TOUCH_ICON); 281 statement.Assign(db.db_.GetCachedStatement(SQL_FROM_HERE,
283 base::Time time = base::Time::Now(); 282 "INSERT INTO favicons (url, icon_type) VALUES (?, ?)"));
284 db.SetFavicon(id, favicon, time); 283 statement.BindString(0, URLDatabase::GURLToDatabaseURL(url));
284 statement.BindInt(1, TOUCH_ICON);
285 EXPECT_TRUE(statement.Run());
285 286
286 EXPECT_TRUE(0 < db.AddIconMapping(url, id)); 287 statement.Assign(db.db_.GetCachedStatement(SQL_FROM_HERE,
287 IconMapping icon_mapping; 288 "SELECT icon_type FROM favicons"));
288 EXPECT_TRUE(db.GetIconMappingForPageURL(url, TOUCH_ICON, &icon_mapping)); 289 EXPECT_TRUE(statement.Step());
289 EXPECT_EQ(url, icon_mapping.page_url); 290
290 EXPECT_EQ(id, icon_mapping.icon_id); 291 EXPECT_EQ(TOUCH_ICON, static_cast<IconType>(statement.ColumnInt(0)));
291 } 292 }
292 293
293 TEST_F(ThumbnailDatabaseTest, UpgradeToVersion5) { 294 TEST_F(ThumbnailDatabaseTest, UpgradeToVersion5) {
294 ThumbnailDatabase db; 295 ThumbnailDatabase db;
295 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); 296 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL));
296 db.BeginTransaction(); 297 db.BeginTransaction();
297 298
298 const char* name = "favicons"; 299 const char* name = "favicons";
299 std::string sql; 300 std::string sql;
300 sql.append("DROP TABLE IF EXISTS "); 301 sql.append("DROP TABLE IF EXISTS ");
(...skipping 10 matching lines...) Expand all
311 "image_data BLOB," 312 "image_data BLOB,"
312 "icon_type INTEGER DEFAULT 1)"); 313 "icon_type INTEGER DEFAULT 1)");
313 ASSERT_TRUE(db.db_.Execute(sql.c_str())); 314 ASSERT_TRUE(db.db_.Execute(sql.c_str()));
314 315
315 ASSERT_TRUE(db.UpgradeToVersion5()); 316 ASSERT_TRUE(db.UpgradeToVersion5());
316 317
317 sql = "SELECT sizes FROM favicons"; 318 sql = "SELECT sizes FROM favicons";
318 EXPECT_TRUE(db.db_.Execute(sql.c_str())); 319 EXPECT_TRUE(db.db_.Execute(sql.c_str()));
319 } 320 }
320 321
322 TEST_F(ThumbnailDatabaseTest, UpgradeToVersion6) {
323 ThumbnailDatabase db;
324 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL));
325 db.BeginTransaction();
326
327 const char* name = "favicons";
328 std::string sql;
329 sql.append("DROP TABLE IF EXISTS ");
330 sql.append(name);
331 EXPECT_TRUE(db.db_.Execute(sql.c_str()));
332
333 sql.resize(0);
334 sql.append("CREATE TABLE ");
335 sql.append(name);
336 sql.append("("
337 "id INTEGER PRIMARY KEY,"
338 "url LONGVARCHAR NOT NULL,"
339 "last_updated INTEGER DEFAULT 0,"
340 "image_data BLOB,"
341 "icon_type INTEGER DEFAULT 1,"
342 "sizes LONGVARCHAR)");
343 EXPECT_TRUE(db.db_.Execute(sql.c_str()));
344
345 GURL url("http://google.com");
346
347 sql::Statement statement;
348 statement.Assign(db.db_.GetCachedStatement(SQL_FROM_HERE,
349 "INSERT INTO favicons (url, icon_type) VALUES (?, ?)"));
350 statement.BindString(0, URLDatabase::GURLToDatabaseURL(url));
351 statement.BindInt(1, FAVICON);
352 EXPECT_TRUE(statement.Run());
353
354 statement.Assign(db.db_.GetCachedStatement(SQL_FROM_HERE,
355 "INSERT INTO favicons (url, icon_type) VALUES (?, ?)"));
356 statement.BindString(0, URLDatabase::GURLToDatabaseURL(url));
357 statement.BindInt(1, TOUCH_ICON);
358 EXPECT_TRUE(statement.Run());
359
360 EXPECT_TRUE(db.UpgradeToVersion6());
361
362 statement.Assign(db.db_.GetCachedStatement(SQL_FROM_HERE,
363 "SELECT icon_type, size FROM favicons ORDER BY icon_type ASC"));
364
365 EXPECT_TRUE(statement.Step());
366 EXPECT_EQ(FAVICON, statement.ColumnInt(0));
367 EXPECT_EQ(16, statement.ColumnInt(1));
368
369 EXPECT_TRUE(statement.Step());
370 EXPECT_EQ(TOUCH_ICON, statement.ColumnInt(0));
371 EXPECT_EQ(0, statement.ColumnInt(1));
372 }
373
321 TEST_F(ThumbnailDatabaseTest, TemporayIconMapping) { 374 TEST_F(ThumbnailDatabaseTest, TemporayIconMapping) {
322 ThumbnailDatabase db; 375 ThumbnailDatabase db;
323 376
324 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); 377 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL));
325 378
326 db.BeginTransaction(); 379 db.BeginTransaction();
327 380
328 EXPECT_TRUE(db.InitTemporaryIconMappingTable()); 381 EXPECT_TRUE(db.InitTemporaryIconMappingTable());
329 382
330 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); 383 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1));
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after
613 ASSERT_TRUE(enumerator2.GetNextIconMapping(&icon_mapping)); 666 ASSERT_TRUE(enumerator2.GetNextIconMapping(&icon_mapping));
614 EXPECT_EQ(touch_mapping_id1, icon_mapping.mapping_id); 667 EXPECT_EQ(touch_mapping_id1, icon_mapping.mapping_id);
615 EXPECT_EQ(url, icon_mapping.page_url); 668 EXPECT_EQ(url, icon_mapping.page_url);
616 EXPECT_EQ(touch_icon_id1, icon_mapping.icon_id); 669 EXPECT_EQ(touch_icon_id1, icon_mapping.icon_id);
617 EXPECT_EQ(TOUCH_ICON, icon_mapping.icon_type); 670 EXPECT_EQ(TOUCH_ICON, icon_mapping.icon_type);
618 671
619 EXPECT_FALSE(enumerator2.GetNextIconMapping(&icon_mapping)); 672 EXPECT_FALSE(enumerator2.GetNextIconMapping(&icon_mapping));
620 } 673 }
621 674
622 } // namespace history 675 } // namespace history
OLDNEW
« chrome/browser/history/thumbnail_database.cc ('K') | « chrome/browser/history/thumbnail_database.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698