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

Side by Side Diff: chrome/browser/webdata/web_database_unittest.cc

Issue 6484022: Autofill i18n: Set postal code and state field labels based on the selected country. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Properly merged with ToT Created 9 years, 10 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 <list> 5 #include <list>
6 #include <map> 6 #include <map>
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 1490 matching lines...) Expand 10 before | Expand all | Expand 10 after
1501 billing_profile.SetInfo(AutoFillType(ADDRESS_HOME_LINE1), 1501 billing_profile.SetInfo(AutoFillType(ADDRESS_HOME_LINE1),
1502 ASCIIToUTF16("Open Road")); 1502 ASCIIToUTF16("Open Road"));
1503 billing_profile.SetInfo(AutoFillType(ADDRESS_HOME_LINE2), 1503 billing_profile.SetInfo(AutoFillType(ADDRESS_HOME_LINE2),
1504 ASCIIToUTF16("Route 66")); 1504 ASCIIToUTF16("Route 66"));
1505 billing_profile.SetInfo(AutoFillType(ADDRESS_HOME_CITY), 1505 billing_profile.SetInfo(AutoFillType(ADDRESS_HOME_CITY),
1506 ASCIIToUTF16("NFA")); 1506 ASCIIToUTF16("NFA"));
1507 billing_profile.SetInfo(AutoFillType(ADDRESS_HOME_STATE), ASCIIToUTF16("NY")); 1507 billing_profile.SetInfo(AutoFillType(ADDRESS_HOME_STATE), ASCIIToUTF16("NY"));
1508 billing_profile.SetInfo(AutoFillType(ADDRESS_HOME_ZIP), 1508 billing_profile.SetInfo(AutoFillType(ADDRESS_HOME_ZIP),
1509 ASCIIToUTF16("10011")); 1509 ASCIIToUTF16("10011"));
1510 billing_profile.SetInfo(AutoFillType(ADDRESS_HOME_COUNTRY), 1510 billing_profile.SetInfo(AutoFillType(ADDRESS_HOME_COUNTRY),
1511 ASCIIToUTF16("USA")); 1511 ASCIIToUTF16("United States"));
1512 billing_profile.SetInfo(AutoFillType(PHONE_HOME_WHOLE_NUMBER), 1512 billing_profile.SetInfo(AutoFillType(PHONE_HOME_WHOLE_NUMBER),
1513 ASCIIToUTF16("18181230000")); 1513 ASCIIToUTF16("18181230000"));
1514 billing_profile.SetInfo(AutoFillType(PHONE_FAX_WHOLE_NUMBER), 1514 billing_profile.SetInfo(AutoFillType(PHONE_FAX_WHOLE_NUMBER),
1515 ASCIIToUTF16("1915240000")); 1515 ASCIIToUTF16("1915240000"));
1516 Time pre_modification_time_2 = Time::Now(); 1516 Time pre_modification_time_2 = Time::Now();
1517 EXPECT_TRUE(db.UpdateAutoFillProfile(billing_profile)); 1517 EXPECT_TRUE(db.UpdateAutoFillProfile(billing_profile));
1518 Time post_modification_time_2 = Time::Now(); 1518 Time post_modification_time_2 = Time::Now();
1519 ASSERT_TRUE(db.GetAutoFillProfile(billing_profile.guid(), &db_profile)); 1519 ASSERT_TRUE(db.GetAutoFillProfile(billing_profile.guid(), &db_profile));
1520 EXPECT_EQ(billing_profile, *db_profile); 1520 EXPECT_EQ(billing_profile, *db_profile);
1521 sql::Statement s_billing_updated_2(db.db_.GetUniqueStatement( 1521 sql::Statement s_billing_updated_2(db.db_.GetUniqueStatement(
(...skipping 564 matching lines...) Expand 10 before | Expand all | Expand 10 after
2086 return s.ColumnInt(0); 2086 return s.ColumnInt(0);
2087 } 2087 }
2088 2088
2089 // The sql files located in "chrome/test/data/web_database" were generated by 2089 // The sql files located in "chrome/test/data/web_database" were generated by
2090 // launching the Chromium application prior to schema change, then using the 2090 // launching the Chromium application prior to schema change, then using the
2091 // sqlite3 command-line application to dump the contents of the "Web Data" 2091 // sqlite3 command-line application to dump the contents of the "Web Data"
2092 // database. 2092 // database.
2093 // Like this: 2093 // Like this:
2094 // > .output version_nn.sql 2094 // > .output version_nn.sql
2095 // > .dump 2095 // > .dump
2096 void LoadDatabase(const FilePath& path); 2096 void LoadDatabase(const FilePath::StringType& file);
2097 2097
2098 // Assertion testing for migrating from version 27 and 28. 2098 // Assertion testing for migrating from version 27 and 28.
2099 void MigrateVersion28Assertions(); 2099 void MigrateVersion28Assertions();
2100 2100
2101 private: 2101 private:
2102 ScopedTempDir temp_dir_; 2102 ScopedTempDir temp_dir_;
2103 2103
2104 DISALLOW_COPY_AND_ASSIGN(WebDatabaseMigrationTest); 2104 DISALLOW_COPY_AND_ASSIGN(WebDatabaseMigrationTest);
2105 }; 2105 };
2106 2106
2107 const int WebDatabaseMigrationTest::kCurrentTestedVersionNumber = 33; 2107 const int WebDatabaseMigrationTest::kCurrentTestedVersionNumber = 34;
2108 2108
2109 void WebDatabaseMigrationTest::LoadDatabase(const FilePath& file) { 2109 void WebDatabaseMigrationTest::LoadDatabase(const FilePath::StringType& file) {
2110 std::string contents; 2110 std::string contents;
2111 ASSERT_TRUE(GetWebDatabaseData(file, &contents)); 2111 ASSERT_TRUE(GetWebDatabaseData(FilePath(file), &contents));
2112 2112
2113 sql::Connection connection; 2113 sql::Connection connection;
2114 ASSERT_TRUE(connection.Open(GetDatabasePath())); 2114 ASSERT_TRUE(connection.Open(GetDatabasePath()));
2115 ASSERT_TRUE(connection.Execute(contents.data())); 2115 ASSERT_TRUE(connection.Execute(contents.data()));
2116 } 2116 }
2117 2117
2118 void WebDatabaseMigrationTest::MigrateVersion28Assertions() { 2118 void WebDatabaseMigrationTest::MigrateVersion28Assertions() {
2119 // Load the database via the WebDatabase class and migrate the database to 2119 // Load the database via the WebDatabase class and migrate the database to
2120 // the current version. 2120 // the current version.
2121 { 2121 {
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
2206 EXPECT_TRUE(connection.DoesTableExist("token_service")); 2206 EXPECT_TRUE(connection.DoesTableExist("token_service"));
2207 } 2207 }
2208 } 2208 }
2209 2209
2210 // Tests that the |credit_card| table gets added to the schema for a version 22 2210 // Tests that the |credit_card| table gets added to the schema for a version 22
2211 // database. 2211 // database.
2212 TEST_F(WebDatabaseMigrationTest, MigrateVersion22ToCurrent) { 2212 TEST_F(WebDatabaseMigrationTest, MigrateVersion22ToCurrent) {
2213 // This schema is taken from a build prior to the addition of the 2213 // This schema is taken from a build prior to the addition of the
2214 // |credit_card| table. Version 22 of the schema. Contrast this with the 2214 // |credit_card| table. Version 22 of the schema. Contrast this with the
2215 // corrupt version below. 2215 // corrupt version below.
2216 ASSERT_NO_FATAL_FAILURE( 2216 ASSERT_NO_FATAL_FAILURE(LoadDatabase(FILE_PATH_LITERAL("version_22.sql")));
2217 LoadDatabase(FilePath(FILE_PATH_LITERAL("version_22.sql"))));
2218 2217
2219 // Verify pre-conditions. 2218 // Verify pre-conditions.
2220 { 2219 {
2221 sql::Connection connection; 2220 sql::Connection connection;
2222 ASSERT_TRUE(connection.Open(GetDatabasePath())); 2221 ASSERT_TRUE(connection.Open(GetDatabasePath()));
2223 2222
2224 // No |credit_card| table prior to version 23. 2223 // No |credit_card| table prior to version 23.
2225 ASSERT_FALSE(connection.DoesColumnExist("credit_cards", "guid")); 2224 ASSERT_FALSE(connection.DoesColumnExist("credit_cards", "guid"));
2226 ASSERT_FALSE( 2225 ASSERT_FALSE(
2227 connection.DoesColumnExist("credit_cards", "card_number_encrypted")); 2226 connection.DoesColumnExist("credit_cards", "card_number_encrypted"));
(...skipping 25 matching lines...) Expand all
2253 // Tests that the |credit_card| table gets added to the schema for a corrupt 2252 // Tests that the |credit_card| table gets added to the schema for a corrupt
2254 // version 22 database. The corruption is that the |credit_cards| table exists 2253 // version 22 database. The corruption is that the |credit_cards| table exists
2255 // but the schema version number was not set correctly to 23 or later. This 2254 // but the schema version number was not set correctly to 23 or later. This
2256 // test exercises code introduced to fix bug http://crbug.com/50699 that 2255 // test exercises code introduced to fix bug http://crbug.com/50699 that
2257 // resulted from the corruption. 2256 // resulted from the corruption.
2258 TEST_F(WebDatabaseMigrationTest, MigrateVersion22CorruptedToCurrent) { 2257 TEST_F(WebDatabaseMigrationTest, MigrateVersion22CorruptedToCurrent) {
2259 // This schema is taken from a build after the addition of the |credit_card| 2258 // This schema is taken from a build after the addition of the |credit_card|
2260 // table. Due to a bug in the migration logic the version is set incorrectly 2259 // table. Due to a bug in the migration logic the version is set incorrectly
2261 // to 22 (it should have been updated to 23 at least). 2260 // to 22 (it should have been updated to 23 at least).
2262 ASSERT_NO_FATAL_FAILURE( 2261 ASSERT_NO_FATAL_FAILURE(
2263 LoadDatabase(FilePath(FILE_PATH_LITERAL("version_22_corrupt.sql")))); 2262 LoadDatabase(FILE_PATH_LITERAL("version_22_corrupt.sql")));
2264 2263
2265 // Verify pre-conditions. These are expectations for corrupt version 22 of 2264 // Verify pre-conditions. These are expectations for corrupt version 22 of
2266 // the database. 2265 // the database.
2267 { 2266 {
2268 sql::Connection connection; 2267 sql::Connection connection;
2269 ASSERT_TRUE(connection.Open(GetDatabasePath())); 2268 ASSERT_TRUE(connection.Open(GetDatabasePath()));
2270 2269
2271 // Columns existing and not existing before current version. 2270 // Columns existing and not existing before current version.
2272 ASSERT_TRUE(connection.DoesColumnExist("credit_cards", "unique_id")); 2271 ASSERT_TRUE(connection.DoesColumnExist("credit_cards", "unique_id"));
2273 ASSERT_TRUE( 2272 ASSERT_TRUE(
(...skipping 27 matching lines...) Expand all
2301 EXPECT_TRUE(connection.DoesColumnExist("keywords", "id")); 2300 EXPECT_TRUE(connection.DoesColumnExist("keywords", "id"));
2302 EXPECT_TRUE(connection.DoesColumnExist("keywords", "logo_id")); 2301 EXPECT_TRUE(connection.DoesColumnExist("keywords", "logo_id"));
2303 } 2302 }
2304 } 2303 }
2305 2304
2306 // Tests that the |keywords| |logo_id| column gets added to the schema for a 2305 // Tests that the |keywords| |logo_id| column gets added to the schema for a
2307 // version 24 database. 2306 // version 24 database.
2308 TEST_F(WebDatabaseMigrationTest, MigrateVersion24ToCurrent) { 2307 TEST_F(WebDatabaseMigrationTest, MigrateVersion24ToCurrent) {
2309 // This schema is taken from a build prior to the addition of the |keywords| 2308 // This schema is taken from a build prior to the addition of the |keywords|
2310 // |logo_id| column. 2309 // |logo_id| column.
2311 ASSERT_NO_FATAL_FAILURE( 2310 ASSERT_NO_FATAL_FAILURE(LoadDatabase(FILE_PATH_LITERAL("version_24.sql")));
2312 LoadDatabase(FilePath(FILE_PATH_LITERAL("version_24.sql"))));
2313 2311
2314 // Verify pre-conditions. These are expectations for version 24 of the 2312 // Verify pre-conditions. These are expectations for version 24 of the
2315 // database. 2313 // database.
2316 { 2314 {
2317 sql::Connection connection; 2315 sql::Connection connection;
2318 ASSERT_TRUE(connection.Open(GetDatabasePath())); 2316 ASSERT_TRUE(connection.Open(GetDatabasePath()));
2319 2317
2320 // Columns existing and not existing before current version. 2318 // Columns existing and not existing before current version.
2321 ASSERT_TRUE(connection.DoesColumnExist("keywords", "id")); 2319 ASSERT_TRUE(connection.DoesColumnExist("keywords", "id"));
2322 ASSERT_FALSE(connection.DoesColumnExist("keywords", "logo_id")); 2320 ASSERT_FALSE(connection.DoesColumnExist("keywords", "logo_id"));
(...skipping 19 matching lines...) Expand all
2342 EXPECT_TRUE(connection.DoesColumnExist("keywords", "id")); 2340 EXPECT_TRUE(connection.DoesColumnExist("keywords", "id"));
2343 EXPECT_TRUE(connection.DoesColumnExist("keywords", "logo_id")); 2341 EXPECT_TRUE(connection.DoesColumnExist("keywords", "logo_id"));
2344 } 2342 }
2345 } 2343 }
2346 2344
2347 // Tests that the |keywords| |created_by_policy| column gets added to the schema 2345 // Tests that the |keywords| |created_by_policy| column gets added to the schema
2348 // for a version 25 database. 2346 // for a version 25 database.
2349 TEST_F(WebDatabaseMigrationTest, MigrateVersion25ToCurrent) { 2347 TEST_F(WebDatabaseMigrationTest, MigrateVersion25ToCurrent) {
2350 // This schema is taken from a build prior to the addition of the |keywords| 2348 // This schema is taken from a build prior to the addition of the |keywords|
2351 // |created_by_policy| column. 2349 // |created_by_policy| column.
2352 ASSERT_NO_FATAL_FAILURE( 2350 ASSERT_NO_FATAL_FAILURE(LoadDatabase(FILE_PATH_LITERAL("version_25.sql")));
2353 LoadDatabase(FilePath(FILE_PATH_LITERAL("version_25.sql"))));
2354 2351
2355 // Verify pre-conditions. These are expectations for version 25 of the 2352 // Verify pre-conditions. These are expectations for version 25 of the
2356 // database. 2353 // database.
2357 { 2354 {
2358 sql::Connection connection; 2355 sql::Connection connection;
2359 ASSERT_TRUE(connection.Open(GetDatabasePath())); 2356 ASSERT_TRUE(connection.Open(GetDatabasePath()));
2360 } 2357 }
2361 2358
2362 // Load the database via the WebDatabase class and migrate the database to 2359 // Load the database via the WebDatabase class and migrate the database to
2363 // the current version. 2360 // the current version.
(...skipping 16 matching lines...) Expand all
2380 EXPECT_TRUE(connection.DoesColumnExist("keywords", "created_by_policy")); 2377 EXPECT_TRUE(connection.DoesColumnExist("keywords", "created_by_policy"));
2381 } 2378 }
2382 } 2379 }
2383 2380
2384 // Tests that the credit_cards.billing_address column is changed from a string 2381 // Tests that the credit_cards.billing_address column is changed from a string
2385 // to an int whilst preserving the associated billing address. This version of 2382 // to an int whilst preserving the associated billing address. This version of
2386 // the test makes sure a stored label is converted to an ID. 2383 // the test makes sure a stored label is converted to an ID.
2387 TEST_F(WebDatabaseMigrationTest, MigrateVersion26ToCurrentStringLabels) { 2384 TEST_F(WebDatabaseMigrationTest, MigrateVersion26ToCurrentStringLabels) {
2388 // This schema is taken from a build prior to the change of column type for 2385 // This schema is taken from a build prior to the change of column type for
2389 // credit_cards.billing_address from string to int. 2386 // credit_cards.billing_address from string to int.
2390 ASSERT_NO_FATAL_FAILURE( 2387 ASSERT_NO_FATAL_FAILURE(LoadDatabase(FILE_PATH_LITERAL("version_26.sql")));
2391 LoadDatabase(FilePath(FILE_PATH_LITERAL("version_26.sql"))));
2392 2388
2393 // Verify pre-conditions. These are expectations for version 26 of the 2389 // Verify pre-conditions. These are expectations for version 26 of the
2394 // database. 2390 // database.
2395 { 2391 {
2396 sql::Connection connection; 2392 sql::Connection connection;
2397 ASSERT_TRUE(connection.Open(GetDatabasePath())); 2393 ASSERT_TRUE(connection.Open(GetDatabasePath()));
2398 2394
2399 // Columns existing and not existing before current version. 2395 // Columns existing and not existing before current version.
2400 EXPECT_TRUE(connection.DoesColumnExist("credit_cards", "billing_address")); 2396 EXPECT_TRUE(connection.DoesColumnExist("credit_cards", "billing_address"));
2401 2397
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
2453 // Column 6 is date_modified. 2449 // Column 6 is date_modified.
2454 } 2450 }
2455 } 2451 }
2456 2452
2457 // Tests that the credit_cards.billing_address column is changed from a string 2453 // Tests that the credit_cards.billing_address column is changed from a string
2458 // to an int whilst preserving the associated billing address. This version of 2454 // to an int whilst preserving the associated billing address. This version of
2459 // the test makes sure a stored string ID is converted to an integer ID. 2455 // the test makes sure a stored string ID is converted to an integer ID.
2460 TEST_F(WebDatabaseMigrationTest, MigrateVersion26ToCurrentStringIDs) { 2456 TEST_F(WebDatabaseMigrationTest, MigrateVersion26ToCurrentStringIDs) {
2461 // This schema is taken from a build prior to the change of column type for 2457 // This schema is taken from a build prior to the change of column type for
2462 // credit_cards.billing_address from string to int. 2458 // credit_cards.billing_address from string to int.
2463 ASSERT_NO_FATAL_FAILURE( 2459 ASSERT_NO_FATAL_FAILURE(LoadDatabase(FILE_PATH_LITERAL("version_26.sql")));
2464 LoadDatabase(FilePath(FILE_PATH_LITERAL("version_26.sql"))));
2465 2460
2466 // Verify pre-conditions. These are expectations for version 26 of the 2461 // Verify pre-conditions. These are expectations for version 26 of the
2467 // database. 2462 // database.
2468 { 2463 {
2469 sql::Connection connection; 2464 sql::Connection connection;
2470 ASSERT_TRUE(connection.Open(GetDatabasePath())); 2465 ASSERT_TRUE(connection.Open(GetDatabasePath()));
2471 EXPECT_TRUE(connection.DoesColumnExist("credit_cards", "billing_address")); 2466 EXPECT_TRUE(connection.DoesColumnExist("credit_cards", "billing_address"));
2472 2467
2473 std::string stmt = "INSERT INTO autofill_profiles" 2468 std::string stmt = "INSERT INTO autofill_profiles"
2474 "(label, unique_id, first_name, middle_name, last_name, email," 2469 "(label, unique_id, first_name, middle_name, last_name, email,"
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
2526 EXPECT_EQ(2012, s.ColumnInt(3)); 2521 EXPECT_EQ(2012, s.ColumnInt(3));
2527 // Column 5 is encrypted credit card number blob. 2522 // Column 5 is encrypted credit card number blob.
2528 // Column 6 is date_modified. 2523 // Column 6 is date_modified.
2529 } 2524 }
2530 } 2525 }
2531 2526
2532 // Tests migration from 27->current. This test is now the same as 28->current 2527 // Tests migration from 27->current. This test is now the same as 28->current
2533 // as the column added in 28 was nuked in 29. 2528 // as the column added in 28 was nuked in 29.
2534 TEST_F(WebDatabaseMigrationTest, MigrateVersion27ToCurrent) { 2529 TEST_F(WebDatabaseMigrationTest, MigrateVersion27ToCurrent) {
2535 // Initialize the database. 2530 // Initialize the database.
2536 ASSERT_NO_FATAL_FAILURE( 2531 ASSERT_NO_FATAL_FAILURE(LoadDatabase(FILE_PATH_LITERAL("version_27.sql")));
2537 LoadDatabase(FilePath(FILE_PATH_LITERAL("version_27.sql"))));
2538 2532
2539 // Verify pre-conditions. These are expectations for version 28 of the 2533 // Verify pre-conditions. These are expectations for version 28 of the
2540 // database. 2534 // database.
2541 { 2535 {
2542 sql::Connection connection; 2536 sql::Connection connection;
2543 ASSERT_TRUE(connection.Open(GetDatabasePath())); 2537 ASSERT_TRUE(connection.Open(GetDatabasePath()));
2544 2538
2545 ASSERT_FALSE(connection.DoesColumnExist("keywords", "supports_instant")); 2539 ASSERT_FALSE(connection.DoesColumnExist("keywords", "supports_instant"));
2546 ASSERT_FALSE(connection.DoesColumnExist("keywords", "instant_url")); 2540 ASSERT_FALSE(connection.DoesColumnExist("keywords", "instant_url"));
2547 } 2541 }
2548 2542
2549 MigrateVersion28Assertions(); 2543 MigrateVersion28Assertions();
2550 } 2544 }
2551 2545
2552 // Makes sure instant_url is added correctly to keywords. 2546 // Makes sure instant_url is added correctly to keywords.
2553 TEST_F(WebDatabaseMigrationTest, MigrateVersion28ToCurrent) { 2547 TEST_F(WebDatabaseMigrationTest, MigrateVersion28ToCurrent) {
2554 // Initialize the database. 2548 // Initialize the database.
2555 ASSERT_NO_FATAL_FAILURE( 2549 ASSERT_NO_FATAL_FAILURE(LoadDatabase(FILE_PATH_LITERAL("version_28.sql")));
2556 LoadDatabase(FilePath(FILE_PATH_LITERAL("version_28.sql"))));
2557 2550
2558 // Verify pre-conditions. These are expectations for version 28 of the 2551 // Verify pre-conditions. These are expectations for version 28 of the
2559 // database. 2552 // database.
2560 { 2553 {
2561 sql::Connection connection; 2554 sql::Connection connection;
2562 ASSERT_TRUE(connection.Open(GetDatabasePath())); 2555 ASSERT_TRUE(connection.Open(GetDatabasePath()));
2563 2556
2564 ASSERT_TRUE(connection.DoesColumnExist("keywords", "supports_instant")); 2557 ASSERT_TRUE(connection.DoesColumnExist("keywords", "supports_instant"));
2565 ASSERT_FALSE(connection.DoesColumnExist("keywords", "instant_url")); 2558 ASSERT_FALSE(connection.DoesColumnExist("keywords", "instant_url"));
2566 } 2559 }
2567 2560
2568 MigrateVersion28Assertions(); 2561 MigrateVersion28Assertions();
2569 } 2562 }
2570 2563
2571 // Makes sure date_modified is added correctly to autofill_profiles and 2564 // Makes sure date_modified is added correctly to autofill_profiles and
2572 // credit_cards. 2565 // credit_cards.
2573 TEST_F(WebDatabaseMigrationTest, MigrateVersion29ToCurrent) { 2566 TEST_F(WebDatabaseMigrationTest, MigrateVersion29ToCurrent) {
2574 // Initialize the database. 2567 // Initialize the database.
2575 ASSERT_NO_FATAL_FAILURE( 2568 ASSERT_NO_FATAL_FAILURE(LoadDatabase(FILE_PATH_LITERAL("version_29.sql")));
2576 LoadDatabase(FilePath(FILE_PATH_LITERAL("version_29.sql"))));
2577 2569
2578 // Verify pre-conditions. These are expectations for version 29 of the 2570 // Verify pre-conditions. These are expectations for version 29 of the
2579 // database. 2571 // database.
2580 { 2572 {
2581 sql::Connection connection; 2573 sql::Connection connection;
2582 ASSERT_TRUE(connection.Open(GetDatabasePath())); 2574 ASSERT_TRUE(connection.Open(GetDatabasePath()));
2583 2575
2584 EXPECT_FALSE(connection.DoesColumnExist("autofill_profiles", 2576 EXPECT_FALSE(connection.DoesColumnExist("autofill_profiles",
2585 "date_modified")); 2577 "date_modified"));
2586 EXPECT_FALSE(connection.DoesColumnExist("credit_cards", 2578 EXPECT_FALSE(connection.DoesColumnExist("credit_cards",
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
2631 EXPECT_LE(s_credit_cards.ColumnInt64(0), 2623 EXPECT_LE(s_credit_cards.ColumnInt64(0),
2632 post_creation_time.ToTimeT()); 2624 post_creation_time.ToTimeT());
2633 } 2625 }
2634 EXPECT_TRUE(s_credit_cards.Succeeded()); 2626 EXPECT_TRUE(s_credit_cards.Succeeded());
2635 } 2627 }
2636 } 2628 }
2637 2629
2638 // Makes sure guids are added to autofill_profiles and credit_cards tables. 2630 // Makes sure guids are added to autofill_profiles and credit_cards tables.
2639 TEST_F(WebDatabaseMigrationTest, MigrateVersion30ToCurrent) { 2631 TEST_F(WebDatabaseMigrationTest, MigrateVersion30ToCurrent) {
2640 // Initialize the database. 2632 // Initialize the database.
2641 ASSERT_NO_FATAL_FAILURE( 2633 ASSERT_NO_FATAL_FAILURE(LoadDatabase(FILE_PATH_LITERAL("version_30.sql")));
2642 LoadDatabase(FilePath(FILE_PATH_LITERAL("version_30.sql"))));
2643 2634
2644 // Verify pre-conditions. These are expectations for version 29 of the 2635 // Verify pre-conditions. These are expectations for version 29 of the
2645 // database. 2636 // database.
2646 { 2637 {
2647 sql::Connection connection; 2638 sql::Connection connection;
2648 ASSERT_TRUE(connection.Open(GetDatabasePath())); 2639 ASSERT_TRUE(connection.Open(GetDatabasePath()));
2649 2640
2650 EXPECT_FALSE(connection.DoesColumnExist("autofill_profiles", "guid")); 2641 EXPECT_FALSE(connection.DoesColumnExist("autofill_profiles", "guid"));
2651 EXPECT_FALSE(connection.DoesColumnExist("credit_cards", "guid")); 2642 EXPECT_FALSE(connection.DoesColumnExist("credit_cards", "guid"));
2652 } 2643 }
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
2684 EXPECT_TRUE(guid::IsValidGUID(guid2)); 2675 EXPECT_TRUE(guid::IsValidGUID(guid2));
2685 2676
2686 EXPECT_NE(guid1, guid2); 2677 EXPECT_NE(guid1, guid2);
2687 } 2678 }
2688 } 2679 }
2689 2680
2690 // Removes unique IDs and make GUIDs the primary key. Also removes unused 2681 // Removes unique IDs and make GUIDs the primary key. Also removes unused
2691 // columns. 2682 // columns.
2692 TEST_F(WebDatabaseMigrationTest, MigrateVersion31ToCurrent) { 2683 TEST_F(WebDatabaseMigrationTest, MigrateVersion31ToCurrent) {
2693 // Initialize the database. 2684 // Initialize the database.
2694 ASSERT_NO_FATAL_FAILURE( 2685 ASSERT_NO_FATAL_FAILURE(LoadDatabase(FILE_PATH_LITERAL("version_31.sql")));
2695 LoadDatabase(FilePath(FILE_PATH_LITERAL("version_31.sql"))));
2696 2686
2697 // Verify pre-conditions. These are expectations for version 30 of the 2687 // Verify pre-conditions. These are expectations for version 30 of the
2698 // database. 2688 // database.
2699 AutoFillProfile profile; 2689 AutoFillProfile profile;
2700 string16 profile_label; 2690 string16 profile_label;
2701 int profile_unique_id = 0; 2691 int profile_unique_id = 0;
2702 int64 profile_date_modified = 0; 2692 int64 profile_date_modified = 0;
2703 CreditCard credit_card; 2693 CreditCard credit_card;
2704 string16 cc_label; 2694 string16 cc_label;
2705 int cc_unique_id = 0; 2695 int cc_unique_id = 0;
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
2833 EXPECT_EQ(cc_label, cc_label_a); 2823 EXPECT_EQ(cc_label, cc_label_a);
2834 EXPECT_EQ(cc_number_encrypted, cc_number_encrypted_a); 2824 EXPECT_EQ(cc_number_encrypted, cc_number_encrypted_a);
2835 EXPECT_EQ(cc_date_modified, cc_date_modified_a); 2825 EXPECT_EQ(cc_date_modified, cc_date_modified_a);
2836 } 2826 }
2837 } 2827 }
2838 2828
2839 // Factor |autofill_profiles| address information separately from name, email, 2829 // Factor |autofill_profiles| address information separately from name, email,
2840 // and phone. 2830 // and phone.
2841 TEST_F(WebDatabaseMigrationTest, MigrateVersion32ToCurrent) { 2831 TEST_F(WebDatabaseMigrationTest, MigrateVersion32ToCurrent) {
2842 // Initialize the database. 2832 // Initialize the database.
2843 ASSERT_NO_FATAL_FAILURE( 2833 ASSERT_NO_FATAL_FAILURE(LoadDatabase(FILE_PATH_LITERAL("version_32.sql")));
2844 LoadDatabase(FilePath(FILE_PATH_LITERAL("version_32.sql"))));
2845 2834
2846 // Verify pre-conditions. These are expectations for version 32 of the 2835 // Verify pre-conditions. These are expectations for version 32 of the
2847 // database. 2836 // database.
2848 { 2837 {
2849 sql::Connection connection; 2838 sql::Connection connection;
2850 ASSERT_TRUE(connection.Open(GetDatabasePath())); 2839 ASSERT_TRUE(connection.Open(GetDatabasePath()));
2851 2840
2852 // Verify existence of columns we'll be changing. 2841 // Verify existence of columns we'll be changing.
2853 EXPECT_TRUE(connection.DoesColumnExist("autofill_profiles", "guid")); 2842 EXPECT_TRUE(connection.DoesColumnExist("autofill_profiles", "guid"));
2854 EXPECT_TRUE(connection.DoesColumnExist("autofill_profiles", "label")); 2843 EXPECT_TRUE(connection.DoesColumnExist("autofill_profiles", "label"));
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
2947 2936
2948 // John Doe. 2937 // John Doe.
2949 ASSERT_TRUE(s1.Step()); 2938 ASSERT_TRUE(s1.Step());
2950 EXPECT_EQ("00580526-FF81-EE2A-0546-1AC593A32E2F", s1.ColumnString(0)); 2939 EXPECT_EQ("00580526-FF81-EE2A-0546-1AC593A32E2F", s1.ColumnString(0));
2951 EXPECT_EQ(ASCIIToUTF16("Doe Enterprises"), s1.ColumnString16(1)); 2940 EXPECT_EQ(ASCIIToUTF16("Doe Enterprises"), s1.ColumnString16(1));
2952 EXPECT_EQ(ASCIIToUTF16("1 Main St"), s1.ColumnString16(2)); 2941 EXPECT_EQ(ASCIIToUTF16("1 Main St"), s1.ColumnString16(2));
2953 EXPECT_EQ(ASCIIToUTF16("Apt 1"), s1.ColumnString16(3)); 2942 EXPECT_EQ(ASCIIToUTF16("Apt 1"), s1.ColumnString16(3));
2954 EXPECT_EQ(ASCIIToUTF16("Los Altos"), s1.ColumnString16(4)); 2943 EXPECT_EQ(ASCIIToUTF16("Los Altos"), s1.ColumnString16(4));
2955 EXPECT_EQ(ASCIIToUTF16("CA"), s1.ColumnString16(5)); 2944 EXPECT_EQ(ASCIIToUTF16("CA"), s1.ColumnString16(5));
2956 EXPECT_EQ(ASCIIToUTF16("94022"), s1.ColumnString16(6)); 2945 EXPECT_EQ(ASCIIToUTF16("94022"), s1.ColumnString16(6));
2957 EXPECT_EQ(ASCIIToUTF16("USA"), s1.ColumnString16(7)); 2946 EXPECT_EQ(ASCIIToUTF16("United States"), s1.ColumnString16(7));
2958 EXPECT_EQ(1297882100L, s1.ColumnInt64(8)); 2947 EXPECT_EQ(1297882100L, s1.ColumnInt64(8));
2959 2948
2960 // John P. Doe. 2949 // John P. Doe.
2961 ASSERT_TRUE(s1.Step()); 2950 ASSERT_TRUE(s1.Step());
2962 EXPECT_EQ("589636FD-9037-3053-200C-80ABC97D7344", s1.ColumnString(0)); 2951 EXPECT_EQ("589636FD-9037-3053-200C-80ABC97D7344", s1.ColumnString(0));
2963 EXPECT_EQ(ASCIIToUTF16("Doe Enterprises"), s1.ColumnString16(1)); 2952 EXPECT_EQ(ASCIIToUTF16("Doe Enterprises"), s1.ColumnString16(1));
2964 EXPECT_EQ(ASCIIToUTF16("1 Main St"), s1.ColumnString16(2)); 2953 EXPECT_EQ(ASCIIToUTF16("1 Main St"), s1.ColumnString16(2));
2965 EXPECT_EQ(ASCIIToUTF16("Apt 1"), s1.ColumnString16(3)); 2954 EXPECT_EQ(ASCIIToUTF16("Apt 1"), s1.ColumnString16(3));
2966 EXPECT_EQ(ASCIIToUTF16("Los Altos"), s1.ColumnString16(4)); 2955 EXPECT_EQ(ASCIIToUTF16("Los Altos"), s1.ColumnString16(4));
2967 EXPECT_EQ(ASCIIToUTF16("CA"), s1.ColumnString16(5)); 2956 EXPECT_EQ(ASCIIToUTF16("CA"), s1.ColumnString16(5));
2968 EXPECT_EQ(ASCIIToUTF16("94022"), s1.ColumnString16(6)); 2957 EXPECT_EQ(ASCIIToUTF16("94022"), s1.ColumnString16(6));
2969 EXPECT_EQ(ASCIIToUTF16("USA"), s1.ColumnString16(7)); 2958 EXPECT_EQ(ASCIIToUTF16("United States"), s1.ColumnString16(7));
2970 EXPECT_EQ(1297882100L, s1.ColumnInt64(8)); 2959 EXPECT_EQ(1297882100L, s1.ColumnInt64(8));
2971 2960
2972 // Dave Smith. 2961 // Dave Smith.
2973 ASSERT_TRUE(s1.Step()); 2962 ASSERT_TRUE(s1.Step());
2974 EXPECT_EQ("4C74A9D8-7EEE-423E-F9C2-E7FA70ED1396", s1.ColumnString(0)); 2963 EXPECT_EQ("4C74A9D8-7EEE-423E-F9C2-E7FA70ED1396", s1.ColumnString(0));
2975 EXPECT_EQ(ASCIIToUTF16(""), s1.ColumnString16(1)); 2964 EXPECT_EQ(ASCIIToUTF16(""), s1.ColumnString16(1));
2976 EXPECT_EQ(ASCIIToUTF16("2 Main Street"), s1.ColumnString16(2)); 2965 EXPECT_EQ(ASCIIToUTF16("2 Main Street"), s1.ColumnString16(2));
2977 EXPECT_EQ(ASCIIToUTF16(""), s1.ColumnString16(3)); 2966 EXPECT_EQ(ASCIIToUTF16(""), s1.ColumnString16(3));
2978 EXPECT_EQ(ASCIIToUTF16("Los Altos"), s1.ColumnString16(4)); 2967 EXPECT_EQ(ASCIIToUTF16("Los Altos"), s1.ColumnString16(4));
2979 EXPECT_EQ(ASCIIToUTF16("CA"), s1.ColumnString16(5)); 2968 EXPECT_EQ(ASCIIToUTF16("CA"), s1.ColumnString16(5));
2980 EXPECT_EQ(ASCIIToUTF16("94022"), s1.ColumnString16(6)); 2969 EXPECT_EQ(ASCIIToUTF16("94022"), s1.ColumnString16(6));
2981 EXPECT_EQ(ASCIIToUTF16("USA"), s1.ColumnString16(7)); 2970 EXPECT_EQ(ASCIIToUTF16("United States"), s1.ColumnString16(7));
2982 EXPECT_EQ(1297882100L, s1.ColumnInt64(8)); 2971 EXPECT_EQ(1297882100L, s1.ColumnInt64(8));
2983 2972
2984 // Dave Smith (Part 2). 2973 // Dave Smith (Part 2).
2985 ASSERT_TRUE(s1.Step()); 2974 ASSERT_TRUE(s1.Step());
2986 EXPECT_EQ("722DF5C4-F74A-294A-46F0-31FFDED0D635", s1.ColumnString(0)); 2975 EXPECT_EQ("722DF5C4-F74A-294A-46F0-31FFDED0D635", s1.ColumnString(0));
2987 EXPECT_EQ(ASCIIToUTF16(""), s1.ColumnString16(1)); 2976 EXPECT_EQ(ASCIIToUTF16(""), s1.ColumnString16(1));
2988 EXPECT_EQ(ASCIIToUTF16("2 Main St"), s1.ColumnString16(2)); 2977 EXPECT_EQ(ASCIIToUTF16("2 Main St"), s1.ColumnString16(2));
2989 EXPECT_EQ(ASCIIToUTF16(""), s1.ColumnString16(3)); 2978 EXPECT_EQ(ASCIIToUTF16(""), s1.ColumnString16(3));
2990 EXPECT_EQ(ASCIIToUTF16("Los Altos"), s1.ColumnString16(4)); 2979 EXPECT_EQ(ASCIIToUTF16("Los Altos"), s1.ColumnString16(4));
2991 EXPECT_EQ(ASCIIToUTF16("CA"), s1.ColumnString16(5)); 2980 EXPECT_EQ(ASCIIToUTF16("CA"), s1.ColumnString16(5));
2992 EXPECT_EQ(ASCIIToUTF16("94022"), s1.ColumnString16(6)); 2981 EXPECT_EQ(ASCIIToUTF16("94022"), s1.ColumnString16(6));
2993 EXPECT_EQ(ASCIIToUTF16("USA"), s1.ColumnString16(7)); 2982 EXPECT_EQ(ASCIIToUTF16("United States"), s1.ColumnString16(7));
2994 EXPECT_EQ(1297882100L, s1.ColumnInt64(8)); 2983 EXPECT_EQ(1297882100L, s1.ColumnInt64(8));
2995 2984
2996 // Alfred E Newman. 2985 // Alfred E Newman.
2997 ASSERT_TRUE(s1.Step()); 2986 ASSERT_TRUE(s1.Step());
2998 EXPECT_EQ("584282AC-5D21-8D73-A2DB-4F892EF61F3F", s1.ColumnString(0)); 2987 EXPECT_EQ("584282AC-5D21-8D73-A2DB-4F892EF61F3F", s1.ColumnString(0));
2999 EXPECT_EQ(ASCIIToUTF16(""), s1.ColumnString16(1)); 2988 EXPECT_EQ(ASCIIToUTF16(""), s1.ColumnString16(1));
3000 EXPECT_EQ(ASCIIToUTF16(""), s1.ColumnString16(2)); 2989 EXPECT_EQ(ASCIIToUTF16(""), s1.ColumnString16(2));
3001 EXPECT_EQ(ASCIIToUTF16(""), s1.ColumnString16(3)); 2990 EXPECT_EQ(ASCIIToUTF16(""), s1.ColumnString16(3));
3002 EXPECT_EQ(ASCIIToUTF16(""), s1.ColumnString16(4)); 2991 EXPECT_EQ(ASCIIToUTF16(""), s1.ColumnString16(4));
3003 EXPECT_EQ(ASCIIToUTF16(""), s1.ColumnString16(5)); 2992 EXPECT_EQ(ASCIIToUTF16(""), s1.ColumnString16(5));
3004 EXPECT_EQ(ASCIIToUTF16(""), s1.ColumnString16(6)); 2993 EXPECT_EQ(ASCIIToUTF16(""), s1.ColumnString16(6));
3005 EXPECT_EQ(ASCIIToUTF16(""), s1.ColumnString16(7)); 2994 EXPECT_EQ(ASCIIToUTF16(""), s1.ColumnString16(7));
3006 EXPECT_EQ(1297882100L, s1.ColumnInt64(8)); 2995 EXPECT_EQ(1297882100L, s1.ColumnInt64(8));
3007 2996
3008 // 3 Main St. 2997 // 3 Main St.
3009 ASSERT_TRUE(s1.Step()); 2998 ASSERT_TRUE(s1.Step());
3010 EXPECT_EQ("9E5FE298-62C7-83DF-6293-381BC589183F", s1.ColumnString(0)); 2999 EXPECT_EQ("9E5FE298-62C7-83DF-6293-381BC589183F", s1.ColumnString(0));
3011 EXPECT_EQ(ASCIIToUTF16(""), s1.ColumnString16(1)); 3000 EXPECT_EQ(ASCIIToUTF16(""), s1.ColumnString16(1));
3012 EXPECT_EQ(ASCIIToUTF16("3 Main St"), s1.ColumnString16(2)); 3001 EXPECT_EQ(ASCIIToUTF16("3 Main St"), s1.ColumnString16(2));
3013 EXPECT_EQ(ASCIIToUTF16(""), s1.ColumnString16(3)); 3002 EXPECT_EQ(ASCIIToUTF16(""), s1.ColumnString16(3));
3014 EXPECT_EQ(ASCIIToUTF16("Los Altos"), s1.ColumnString16(4)); 3003 EXPECT_EQ(ASCIIToUTF16("Los Altos"), s1.ColumnString16(4));
3015 EXPECT_EQ(ASCIIToUTF16("CA"), s1.ColumnString16(5)); 3004 EXPECT_EQ(ASCIIToUTF16("CA"), s1.ColumnString16(5));
3016 EXPECT_EQ(ASCIIToUTF16("94022"), s1.ColumnString16(6)); 3005 EXPECT_EQ(ASCIIToUTF16("94022"), s1.ColumnString16(6));
3017 EXPECT_EQ(ASCIIToUTF16("USA"), s1.ColumnString16(7)); 3006 EXPECT_EQ(ASCIIToUTF16("United States"), s1.ColumnString16(7));
3018 EXPECT_EQ(1297882100L, s1.ColumnInt64(8)); 3007 EXPECT_EQ(1297882100L, s1.ColumnInt64(8));
3019 3008
3020 // That should be all. 3009 // That should be all.
3021 EXPECT_FALSE(s1.Step()); 3010 EXPECT_FALSE(s1.Step());
3022 3011
3023 sql::Statement s2( 3012 sql::Statement s2(
3024 connection.GetUniqueStatement( 3013 connection.GetUniqueStatement(
3025 "SELECT guid, first_name, middle_name, last_name " 3014 "SELECT guid, first_name, middle_name, last_name "
3026 "FROM autofill_profile_names")); 3015 "FROM autofill_profile_names"));
3027 3016
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
3124 3113
3125 // Note no phone or fax for 2 Main Street. 3114 // Note no phone or fax for 2 Main Street.
3126 // Note no phone or fax for 2 Main St. 3115 // Note no phone or fax for 2 Main St.
3127 // Note no phone or fax for Alfred E Newman. 3116 // Note no phone or fax for Alfred E Newman.
3128 // Note no phone or fax for 3 Main St. 3117 // Note no phone or fax for 3 Main St.
3129 3118
3130 // Should be all. 3119 // Should be all.
3131 EXPECT_FALSE(s4.Step()); 3120 EXPECT_FALSE(s4.Step());
3132 } 3121 }
3133 } 3122 }
3123
3124 // Adds a column for the autofill profile's country code.
3125 TEST_F(WebDatabaseMigrationTest, MigrateVersion33ToCurrent) {
3126 // Initialize the database.
3127 ASSERT_NO_FATAL_FAILURE(LoadDatabase(FILE_PATH_LITERAL("version_33.sql")));
3128
3129 // Verify pre-conditions. These are expectations for version 33 of the
3130 // database.
3131 {
3132 sql::Connection connection;
3133 ASSERT_TRUE(connection.Open(GetDatabasePath()));
3134
3135 EXPECT_FALSE(connection.DoesColumnExist("autofill_profiles",
3136 "country_code"));
3137
3138 // Check that the country value is the one we expect.
3139 sql::Statement s(
3140 connection.GetUniqueStatement("SELECT country FROM autofill_profiles"));
3141
3142 ASSERT_TRUE(s.Step());
3143 std::string country = s.ColumnString(0);
3144 EXPECT_EQ("United States", country);
3145 }
3146
3147 // Load the database via the WebDatabase class and migrate the database to
3148 // the current version.
3149 {
3150 WebDatabase db;
3151 ASSERT_EQ(sql::INIT_OK, db.Init(GetDatabasePath()));
3152 }
3153
3154 // Verify post-conditions. These are expectations for current version of the
3155 // database.
3156 {
3157 sql::Connection connection;
3158 ASSERT_TRUE(connection.Open(GetDatabasePath()));
3159
3160 // Check version.
3161 EXPECT_EQ(kCurrentTestedVersionNumber, VersionFromConnection(&connection));
3162
3163 ASSERT_TRUE(connection.DoesColumnExist("autofill_profiles",
3164 "country_code"));
3165
3166 // Check that the country code is properly converted.
3167 sql::Statement s(connection.GetUniqueStatement(
3168 "SELECT country_code FROM autofill_profiles"));
3169
3170 ASSERT_TRUE(s.Step());
3171 std::string country_code = s.ColumnString(0);
3172 EXPECT_EQ("US", country_code);
3173 }
3174 }
OLDNEW
« no previous file with comments | « chrome/browser/webdata/web_database.cc ('k') | chrome/browser/webui/options/autofill_options_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698