| 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 <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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |