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

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: Still needs tests 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 2024 matching lines...) Expand 10 before | Expand all | Expand 10 after
2035 return s.ColumnInt(0); 2035 return s.ColumnInt(0);
2036 } 2036 }
2037 2037
2038 // The sql files located in "chrome/test/data/web_database" were generated by 2038 // The sql files located in "chrome/test/data/web_database" were generated by
2039 // launching the Chromium application prior to schema change, then using the 2039 // launching the Chromium application prior to schema change, then using the
2040 // sqlite3 command-line application to dump the contents of the "Web Data" 2040 // sqlite3 command-line application to dump the contents of the "Web Data"
2041 // database. 2041 // database.
2042 // Like this: 2042 // Like this:
2043 // > .output version_nn.sql 2043 // > .output version_nn.sql
2044 // > .dump 2044 // > .dump
2045 void LoadDatabase(const FilePath& path); 2045 void LoadDatabase(const FilePath::StringType& file);
2046 2046
2047 // Assertion testing for migrating from version 27 and 28. 2047 // Assertion testing for migrating from version 27 and 28.
2048 void MigrateVersion28Assertions(); 2048 void MigrateVersion28Assertions();
2049 2049
2050 private: 2050 private:
2051 ScopedTempDir temp_dir_; 2051 ScopedTempDir temp_dir_;
2052 2052
2053 DISALLOW_COPY_AND_ASSIGN(WebDatabaseMigrationTest); 2053 DISALLOW_COPY_AND_ASSIGN(WebDatabaseMigrationTest);
2054 }; 2054 };
2055 2055
2056 const int WebDatabaseMigrationTest::kCurrentTestedVersionNumber = 32; 2056 const int WebDatabaseMigrationTest::kCurrentTestedVersionNumber = 33;
2057 2057
2058 void WebDatabaseMigrationTest::LoadDatabase(const FilePath& file) { 2058 void WebDatabaseMigrationTest::LoadDatabase(const FilePath::StringType& file) {
2059 std::string contents; 2059 std::string contents;
2060 ASSERT_TRUE(GetWebDatabaseData(file, &contents)); 2060 ASSERT_TRUE(GetWebDatabaseData(FilePath(file), &contents));
2061 2061
2062 sql::Connection connection; 2062 sql::Connection connection;
2063 ASSERT_TRUE(connection.Open(GetDatabasePath())); 2063 ASSERT_TRUE(connection.Open(GetDatabasePath()));
2064 ASSERT_TRUE(connection.Execute(contents.data())); 2064 ASSERT_TRUE(connection.Execute(contents.data()));
2065 } 2065 }
2066 2066
2067 void WebDatabaseMigrationTest::MigrateVersion28Assertions() { 2067 void WebDatabaseMigrationTest::MigrateVersion28Assertions() {
2068 // Load the database via the WebDatabase class and migrate the database to 2068 // Load the database via the WebDatabase class and migrate the database to
2069 // the current version. 2069 // the current version.
2070 { 2070 {
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
2155 EXPECT_TRUE(connection.DoesTableExist("token_service")); 2155 EXPECT_TRUE(connection.DoesTableExist("token_service"));
2156 } 2156 }
2157 } 2157 }
2158 2158
2159 // Tests that the |credit_card| table gets added to the schema for a version 22 2159 // Tests that the |credit_card| table gets added to the schema for a version 22
2160 // database. 2160 // database.
2161 TEST_F(WebDatabaseMigrationTest, MigrateVersion22ToCurrent) { 2161 TEST_F(WebDatabaseMigrationTest, MigrateVersion22ToCurrent) {
2162 // This schema is taken from a build prior to the addition of the 2162 // This schema is taken from a build prior to the addition of the
2163 // |credit_card| table. Version 22 of the schema. Contrast this with the 2163 // |credit_card| table. Version 22 of the schema. Contrast this with the
2164 // corrupt version below. 2164 // corrupt version below.
2165 ASSERT_NO_FATAL_FAILURE( 2165 ASSERT_NO_FATAL_FAILURE(LoadDatabase(FILE_PATH_LITERAL("version_22.sql")));
2166 LoadDatabase(FilePath(FILE_PATH_LITERAL("version_22.sql"))));
2167 2166
2168 // Verify pre-conditions. 2167 // Verify pre-conditions.
2169 { 2168 {
2170 sql::Connection connection; 2169 sql::Connection connection;
2171 ASSERT_TRUE(connection.Open(GetDatabasePath())); 2170 ASSERT_TRUE(connection.Open(GetDatabasePath()));
2172 2171
2173 // No |credit_card| table prior to version 23. 2172 // No |credit_card| table prior to version 23.
2174 ASSERT_FALSE(connection.DoesColumnExist("credit_cards", "guid")); 2173 ASSERT_FALSE(connection.DoesColumnExist("credit_cards", "guid"));
2175 ASSERT_FALSE( 2174 ASSERT_FALSE(
2176 connection.DoesColumnExist("credit_cards", "card_number_encrypted")); 2175 connection.DoesColumnExist("credit_cards", "card_number_encrypted"));
(...skipping 25 matching lines...) Expand all
2202 // Tests that the |credit_card| table gets added to the schema for a corrupt 2201 // Tests that the |credit_card| table gets added to the schema for a corrupt
2203 // version 22 database. The corruption is that the |credit_cards| table exists 2202 // version 22 database. The corruption is that the |credit_cards| table exists
2204 // but the schema version number was not set correctly to 23 or later. This 2203 // but the schema version number was not set correctly to 23 or later. This
2205 // test exercises code introduced to fix bug http://crbug.com/50699 that 2204 // test exercises code introduced to fix bug http://crbug.com/50699 that
2206 // resulted from the corruption. 2205 // resulted from the corruption.
2207 TEST_F(WebDatabaseMigrationTest, MigrateVersion22CorruptedToCurrent) { 2206 TEST_F(WebDatabaseMigrationTest, MigrateVersion22CorruptedToCurrent) {
2208 // This schema is taken from a build after the addition of the |credit_card| 2207 // This schema is taken from a build after the addition of the |credit_card|
2209 // table. Due to a bug in the migration logic the version is set incorrectly 2208 // table. Due to a bug in the migration logic the version is set incorrectly
2210 // to 22 (it should have been updated to 23 at least). 2209 // to 22 (it should have been updated to 23 at least).
2211 ASSERT_NO_FATAL_FAILURE( 2210 ASSERT_NO_FATAL_FAILURE(
2212 LoadDatabase(FilePath(FILE_PATH_LITERAL("version_22_corrupt.sql")))); 2211 LoadDatabase(FILE_PATH_LITERAL("version_22_corrupt.sql")));
2213 2212
2214 // Verify pre-conditions. These are expectations for corrupt version 22 of 2213 // Verify pre-conditions. These are expectations for corrupt version 22 of
2215 // the database. 2214 // the database.
2216 { 2215 {
2217 sql::Connection connection; 2216 sql::Connection connection;
2218 ASSERT_TRUE(connection.Open(GetDatabasePath())); 2217 ASSERT_TRUE(connection.Open(GetDatabasePath()));
2219 2218
2220 // Columns existing and not existing before current version. 2219 // Columns existing and not existing before current version.
2221 ASSERT_TRUE(connection.DoesColumnExist("credit_cards", "unique_id")); 2220 ASSERT_TRUE(connection.DoesColumnExist("credit_cards", "unique_id"));
2222 ASSERT_TRUE( 2221 ASSERT_TRUE(
(...skipping 27 matching lines...) Expand all
2250 EXPECT_TRUE(connection.DoesColumnExist("keywords", "id")); 2249 EXPECT_TRUE(connection.DoesColumnExist("keywords", "id"));
2251 EXPECT_TRUE(connection.DoesColumnExist("keywords", "logo_id")); 2250 EXPECT_TRUE(connection.DoesColumnExist("keywords", "logo_id"));
2252 } 2251 }
2253 } 2252 }
2254 2253
2255 // Tests that the |keywords| |logo_id| column gets added to the schema for a 2254 // Tests that the |keywords| |logo_id| column gets added to the schema for a
2256 // version 24 database. 2255 // version 24 database.
2257 TEST_F(WebDatabaseMigrationTest, MigrateVersion24ToCurrent) { 2256 TEST_F(WebDatabaseMigrationTest, MigrateVersion24ToCurrent) {
2258 // This schema is taken from a build prior to the addition of the |keywords| 2257 // This schema is taken from a build prior to the addition of the |keywords|
2259 // |logo_id| column. 2258 // |logo_id| column.
2260 ASSERT_NO_FATAL_FAILURE( 2259 ASSERT_NO_FATAL_FAILURE(LoadDatabase(FILE_PATH_LITERAL("version_24.sql")));
2261 LoadDatabase(FilePath(FILE_PATH_LITERAL("version_24.sql"))));
2262 2260
2263 // Verify pre-conditions. These are expectations for version 24 of the 2261 // Verify pre-conditions. These are expectations for version 24 of the
2264 // database. 2262 // database.
2265 { 2263 {
2266 sql::Connection connection; 2264 sql::Connection connection;
2267 ASSERT_TRUE(connection.Open(GetDatabasePath())); 2265 ASSERT_TRUE(connection.Open(GetDatabasePath()));
2268 2266
2269 // Columns existing and not existing before current version. 2267 // Columns existing and not existing before current version.
2270 ASSERT_TRUE(connection.DoesColumnExist("keywords", "id")); 2268 ASSERT_TRUE(connection.DoesColumnExist("keywords", "id"));
2271 ASSERT_FALSE(connection.DoesColumnExist("keywords", "logo_id")); 2269 ASSERT_FALSE(connection.DoesColumnExist("keywords", "logo_id"));
(...skipping 19 matching lines...) Expand all
2291 EXPECT_TRUE(connection.DoesColumnExist("keywords", "id")); 2289 EXPECT_TRUE(connection.DoesColumnExist("keywords", "id"));
2292 EXPECT_TRUE(connection.DoesColumnExist("keywords", "logo_id")); 2290 EXPECT_TRUE(connection.DoesColumnExist("keywords", "logo_id"));
2293 } 2291 }
2294 } 2292 }
2295 2293
2296 // Tests that the |keywords| |created_by_policy| column gets added to the schema 2294 // Tests that the |keywords| |created_by_policy| column gets added to the schema
2297 // for a version 25 database. 2295 // for a version 25 database.
2298 TEST_F(WebDatabaseMigrationTest, MigrateVersion25ToCurrent) { 2296 TEST_F(WebDatabaseMigrationTest, MigrateVersion25ToCurrent) {
2299 // This schema is taken from a build prior to the addition of the |keywords| 2297 // This schema is taken from a build prior to the addition of the |keywords|
2300 // |created_by_policy| column. 2298 // |created_by_policy| column.
2301 ASSERT_NO_FATAL_FAILURE( 2299 ASSERT_NO_FATAL_FAILURE(LoadDatabase(FILE_PATH_LITERAL("version_25.sql")));
2302 LoadDatabase(FilePath(FILE_PATH_LITERAL("version_25.sql"))));
2303 2300
2304 // Verify pre-conditions. These are expectations for version 25 of the 2301 // Verify pre-conditions. These are expectations for version 25 of the
2305 // database. 2302 // database.
2306 { 2303 {
2307 sql::Connection connection; 2304 sql::Connection connection;
2308 ASSERT_TRUE(connection.Open(GetDatabasePath())); 2305 ASSERT_TRUE(connection.Open(GetDatabasePath()));
2309 } 2306 }
2310 2307
2311 // Load the database via the WebDatabase class and migrate the database to 2308 // Load the database via the WebDatabase class and migrate the database to
2312 // the current version. 2309 // the current version.
(...skipping 16 matching lines...) Expand all
2329 EXPECT_TRUE(connection.DoesColumnExist("keywords", "created_by_policy")); 2326 EXPECT_TRUE(connection.DoesColumnExist("keywords", "created_by_policy"));
2330 } 2327 }
2331 } 2328 }
2332 2329
2333 // Tests that the credit_cards.billing_address column is changed from a string 2330 // Tests that the credit_cards.billing_address column is changed from a string
2334 // to an int whilst preserving the associated billing address. This version of 2331 // to an int whilst preserving the associated billing address. This version of
2335 // the test makes sure a stored label is converted to an ID. 2332 // the test makes sure a stored label is converted to an ID.
2336 TEST_F(WebDatabaseMigrationTest, MigrateVersion26ToCurrentStringLabels) { 2333 TEST_F(WebDatabaseMigrationTest, MigrateVersion26ToCurrentStringLabels) {
2337 // This schema is taken from a build prior to the change of column type for 2334 // This schema is taken from a build prior to the change of column type for
2338 // credit_cards.billing_address from string to int. 2335 // credit_cards.billing_address from string to int.
2339 ASSERT_NO_FATAL_FAILURE( 2336 ASSERT_NO_FATAL_FAILURE(LoadDatabase(FILE_PATH_LITERAL("version_26.sql")));
2340 LoadDatabase(FilePath(FILE_PATH_LITERAL("version_26.sql"))));
2341 2337
2342 // Verify pre-conditions. These are expectations for version 26 of the 2338 // Verify pre-conditions. These are expectations for version 26 of the
2343 // database. 2339 // database.
2344 { 2340 {
2345 sql::Connection connection; 2341 sql::Connection connection;
2346 ASSERT_TRUE(connection.Open(GetDatabasePath())); 2342 ASSERT_TRUE(connection.Open(GetDatabasePath()));
2347 2343
2348 // Columns existing and not existing before current version. 2344 // Columns existing and not existing before current version.
2349 EXPECT_TRUE(connection.DoesColumnExist("credit_cards", "billing_address")); 2345 EXPECT_TRUE(connection.DoesColumnExist("credit_cards", "billing_address"));
2350 2346
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
2403 // Column 6 is date_modified. 2399 // Column 6 is date_modified.
2404 } 2400 }
2405 } 2401 }
2406 2402
2407 // Tests that the credit_cards.billing_address column is changed from a string 2403 // Tests that the credit_cards.billing_address column is changed from a string
2408 // to an int whilst preserving the associated billing address. This version of 2404 // to an int whilst preserving the associated billing address. This version of
2409 // the test makes sure a stored string ID is converted to an integer ID. 2405 // the test makes sure a stored string ID is converted to an integer ID.
2410 TEST_F(WebDatabaseMigrationTest, MigrateVersion26ToCurrentStringIDs) { 2406 TEST_F(WebDatabaseMigrationTest, MigrateVersion26ToCurrentStringIDs) {
2411 // This schema is taken from a build prior to the change of column type for 2407 // This schema is taken from a build prior to the change of column type for
2412 // credit_cards.billing_address from string to int. 2408 // credit_cards.billing_address from string to int.
2413 ASSERT_NO_FATAL_FAILURE( 2409 ASSERT_NO_FATAL_FAILURE(LoadDatabase(FILE_PATH_LITERAL("version_26.sql")));
2414 LoadDatabase(FilePath(FILE_PATH_LITERAL("version_26.sql"))));
2415 2410
2416 // Verify pre-conditions. These are expectations for version 26 of the 2411 // Verify pre-conditions. These are expectations for version 26 of the
2417 // database. 2412 // database.
2418 { 2413 {
2419 sql::Connection connection; 2414 sql::Connection connection;
2420 ASSERT_TRUE(connection.Open(GetDatabasePath())); 2415 ASSERT_TRUE(connection.Open(GetDatabasePath()));
2421 EXPECT_TRUE(connection.DoesColumnExist("credit_cards", "billing_address")); 2416 EXPECT_TRUE(connection.DoesColumnExist("credit_cards", "billing_address"));
2422 2417
2423 std::string stmt = "INSERT INTO autofill_profiles" 2418 std::string stmt = "INSERT INTO autofill_profiles"
2424 "(label, unique_id, first_name, middle_name, last_name, email," 2419 "(label, unique_id, first_name, middle_name, last_name, email,"
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
2477 EXPECT_EQ(2012, s.ColumnInt(4)); 2472 EXPECT_EQ(2012, s.ColumnInt(4));
2478 // Column 5 is encrypted credit card number blob. 2473 // Column 5 is encrypted credit card number blob.
2479 // Column 6 is date_modified. 2474 // Column 6 is date_modified.
2480 } 2475 }
2481 } 2476 }
2482 2477
2483 // Tests migration from 27->current. This test is now the same as 28->current 2478 // Tests migration from 27->current. This test is now the same as 28->current
2484 // as the column added in 28 was nuked in 29. 2479 // as the column added in 28 was nuked in 29.
2485 TEST_F(WebDatabaseMigrationTest, MigrateVersion27ToCurrent) { 2480 TEST_F(WebDatabaseMigrationTest, MigrateVersion27ToCurrent) {
2486 // Initialize the database. 2481 // Initialize the database.
2487 ASSERT_NO_FATAL_FAILURE( 2482 ASSERT_NO_FATAL_FAILURE(LoadDatabase(FILE_PATH_LITERAL("version_27.sql")));
2488 LoadDatabase(FilePath(FILE_PATH_LITERAL("version_27.sql"))));
2489 2483
2490 // Verify pre-conditions. These are expectations for version 28 of the 2484 // Verify pre-conditions. These are expectations for version 28 of the
2491 // database. 2485 // database.
2492 { 2486 {
2493 sql::Connection connection; 2487 sql::Connection connection;
2494 ASSERT_TRUE(connection.Open(GetDatabasePath())); 2488 ASSERT_TRUE(connection.Open(GetDatabasePath()));
2495 2489
2496 ASSERT_FALSE(connection.DoesColumnExist("keywords", "supports_instant")); 2490 ASSERT_FALSE(connection.DoesColumnExist("keywords", "supports_instant"));
2497 ASSERT_FALSE(connection.DoesColumnExist("keywords", "instant_url")); 2491 ASSERT_FALSE(connection.DoesColumnExist("keywords", "instant_url"));
2498 } 2492 }
2499 2493
2500 MigrateVersion28Assertions(); 2494 MigrateVersion28Assertions();
2501 } 2495 }
2502 2496
2503 // Makes sure instant_url is added correctly to keywords. 2497 // Makes sure instant_url is added correctly to keywords.
2504 TEST_F(WebDatabaseMigrationTest, MigrateVersion28ToCurrent) { 2498 TEST_F(WebDatabaseMigrationTest, MigrateVersion28ToCurrent) {
2505 // Initialize the database. 2499 // Initialize the database.
2506 ASSERT_NO_FATAL_FAILURE( 2500 ASSERT_NO_FATAL_FAILURE(LoadDatabase(FILE_PATH_LITERAL("version_28.sql")));
2507 LoadDatabase(FilePath(FILE_PATH_LITERAL("version_28.sql"))));
2508 2501
2509 // Verify pre-conditions. These are expectations for version 28 of the 2502 // Verify pre-conditions. These are expectations for version 28 of the
2510 // database. 2503 // database.
2511 { 2504 {
2512 sql::Connection connection; 2505 sql::Connection connection;
2513 ASSERT_TRUE(connection.Open(GetDatabasePath())); 2506 ASSERT_TRUE(connection.Open(GetDatabasePath()));
2514 2507
2515 ASSERT_TRUE(connection.DoesColumnExist("keywords", "supports_instant")); 2508 ASSERT_TRUE(connection.DoesColumnExist("keywords", "supports_instant"));
2516 ASSERT_FALSE(connection.DoesColumnExist("keywords", "instant_url")); 2509 ASSERT_FALSE(connection.DoesColumnExist("keywords", "instant_url"));
2517 } 2510 }
2518 2511
2519 MigrateVersion28Assertions(); 2512 MigrateVersion28Assertions();
2520 } 2513 }
2521 2514
2522 // Makes sure date_modified is added correctly to autofill_profiles and 2515 // Makes sure date_modified is added correctly to autofill_profiles and
2523 // credit_cards. 2516 // credit_cards.
2524 TEST_F(WebDatabaseMigrationTest, MigrateVersion29ToCurrent) { 2517 TEST_F(WebDatabaseMigrationTest, MigrateVersion29ToCurrent) {
2525 // Initialize the database. 2518 // Initialize the database.
2526 ASSERT_NO_FATAL_FAILURE( 2519 ASSERT_NO_FATAL_FAILURE(LoadDatabase(FILE_PATH_LITERAL("version_29.sql")));
2527 LoadDatabase(FilePath(FILE_PATH_LITERAL("version_29.sql"))));
2528 2520
2529 // Verify pre-conditions. These are expectations for version 29 of the 2521 // Verify pre-conditions. These are expectations for version 29 of the
2530 // database. 2522 // database.
2531 { 2523 {
2532 sql::Connection connection; 2524 sql::Connection connection;
2533 ASSERT_TRUE(connection.Open(GetDatabasePath())); 2525 ASSERT_TRUE(connection.Open(GetDatabasePath()));
2534 2526
2535 EXPECT_FALSE(connection.DoesColumnExist("autofill_profiles", 2527 EXPECT_FALSE(connection.DoesColumnExist("autofill_profiles",
2536 "date_modified")); 2528 "date_modified"));
2537 EXPECT_FALSE(connection.DoesColumnExist("credit_cards", 2529 EXPECT_FALSE(connection.DoesColumnExist("credit_cards",
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
2582 EXPECT_LE(s_credit_cards.ColumnInt64(0), 2574 EXPECT_LE(s_credit_cards.ColumnInt64(0),
2583 post_creation_time.ToTimeT()); 2575 post_creation_time.ToTimeT());
2584 } 2576 }
2585 EXPECT_TRUE(s_credit_cards.Succeeded()); 2577 EXPECT_TRUE(s_credit_cards.Succeeded());
2586 } 2578 }
2587 } 2579 }
2588 2580
2589 // Makes sure guids are added to autofill_profiles and credit_cards tables. 2581 // Makes sure guids are added to autofill_profiles and credit_cards tables.
2590 TEST_F(WebDatabaseMigrationTest, MigrateVersion30ToCurrent) { 2582 TEST_F(WebDatabaseMigrationTest, MigrateVersion30ToCurrent) {
2591 // Initialize the database. 2583 // Initialize the database.
2592 ASSERT_NO_FATAL_FAILURE( 2584 ASSERT_NO_FATAL_FAILURE(LoadDatabase(FILE_PATH_LITERAL("version_30.sql")));
2593 LoadDatabase(FilePath(FILE_PATH_LITERAL("version_30.sql"))));
2594 2585
2595 // Verify pre-conditions. These are expectations for version 29 of the 2586 // Verify pre-conditions. These are expectations for version 29 of the
2596 // database. 2587 // database.
2597 { 2588 {
2598 sql::Connection connection; 2589 sql::Connection connection;
2599 ASSERT_TRUE(connection.Open(GetDatabasePath())); 2590 ASSERT_TRUE(connection.Open(GetDatabasePath()));
2600 2591
2601 EXPECT_FALSE(connection.DoesColumnExist("autofill_profiles", "guid")); 2592 EXPECT_FALSE(connection.DoesColumnExist("autofill_profiles", "guid"));
2602 EXPECT_FALSE(connection.DoesColumnExist("credit_cards", "guid")); 2593 EXPECT_FALSE(connection.DoesColumnExist("credit_cards", "guid"));
2603 } 2594 }
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
2635 EXPECT_TRUE(guid::IsValidGUID(guid2)); 2626 EXPECT_TRUE(guid::IsValidGUID(guid2));
2636 2627
2637 EXPECT_NE(guid1, guid2); 2628 EXPECT_NE(guid1, guid2);
2638 } 2629 }
2639 } 2630 }
2640 2631
2641 // Removes unique IDs and make GUIDs the primary key. Also removes unused 2632 // Removes unique IDs and make GUIDs the primary key. Also removes unused
2642 // columns. 2633 // columns.
2643 TEST_F(WebDatabaseMigrationTest, MigrateVersion31ToCurrent) { 2634 TEST_F(WebDatabaseMigrationTest, MigrateVersion31ToCurrent) {
2644 // Initialize the database. 2635 // Initialize the database.
2645 ASSERT_NO_FATAL_FAILURE( 2636 ASSERT_NO_FATAL_FAILURE(LoadDatabase(FILE_PATH_LITERAL("version_31.sql")));
2646 LoadDatabase(FilePath(FILE_PATH_LITERAL("version_31.sql"))));
2647 2637
2648 // Verify pre-conditions. These are expectations for version 30 of the 2638 // Verify pre-conditions. These are expectations for version 30 of the
2649 // database. 2639 // database.
2650 AutoFillProfile profile; 2640 AutoFillProfile profile;
2651 string16 profile_label; 2641 string16 profile_label;
2652 int profile_unique_id = 0; 2642 int profile_unique_id = 0;
2653 int64 profile_date_modified = 0; 2643 int64 profile_date_modified = 0;
2654 CreditCard credit_card; 2644 CreditCard credit_card;
2655 string16 cc_label; 2645 string16 cc_label;
2656 int cc_unique_id = 0; 2646 int cc_unique_id = 0;
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
2769 &credit_card_a, 2759 &credit_card_a,
2770 &cc_label_a, 2760 &cc_label_a,
2771 &cc_number_encrypted_a, 2761 &cc_number_encrypted_a,
2772 &cc_date_modified_a)); 2762 &cc_date_modified_a));
2773 EXPECT_EQ(credit_card, credit_card_a); 2763 EXPECT_EQ(credit_card, credit_card_a);
2774 EXPECT_EQ(cc_label, cc_label_a); 2764 EXPECT_EQ(cc_label, cc_label_a);
2775 EXPECT_EQ(cc_number_encrypted, cc_number_encrypted_a); 2765 EXPECT_EQ(cc_number_encrypted, cc_number_encrypted_a);
2776 EXPECT_EQ(cc_date_modified, cc_date_modified_a); 2766 EXPECT_EQ(cc_date_modified, cc_date_modified_a);
2777 } 2767 }
2778 } 2768 }
2769
2770 // Adds a column for the autofill profile's country code.
2771 TEST_F(WebDatabaseMigrationTest, MigrateVersion32ToCurrent) {
2772 // Initialize the database.
2773 ASSERT_NO_FATAL_FAILURE(LoadDatabase(FILE_PATH_LITERAL("version_32.sql")));
2774
2775 // Verify pre-conditions. These are expectations for version 32 of the
2776 // database.
2777 {
2778 sql::Connection connection;
2779 ASSERT_TRUE(connection.Open(GetDatabasePath()));
2780
2781 EXPECT_FALSE(connection.DoesColumnExist("autofill_profiles",
2782 "country_code"));
2783
2784 // Check that the country value is the one we expect.
2785 sql::Statement s(
2786 connection.GetUniqueStatement("SELECT country FROM autofill_profiles"));
2787
2788 ASSERT_TRUE(s.Step());
2789 std::string country = s.ColumnString(0);
2790 EXPECT_EQ("United States", country);
2791 }
2792
2793 // Load the database via the WebDatabase class and migrate the database to
2794 // the current version.
2795 {
2796 WebDatabase db;
2797 ASSERT_EQ(sql::INIT_OK, db.Init(GetDatabasePath()));
2798 }
2799
2800 // Verify post-conditions. These are expectations for current version of the
2801 // database.
2802 {
2803 sql::Connection connection;
2804 ASSERT_TRUE(connection.Open(GetDatabasePath()));
2805
2806 // Check version.
2807 EXPECT_EQ(kCurrentTestedVersionNumber, VersionFromConnection(&connection));
2808
2809 ASSERT_TRUE(connection.DoesColumnExist("autofill_profiles",
2810 "country_code"));
2811
2812 // Check that the country code is properly converted.
2813 sql::Statement s(connection.GetUniqueStatement(
2814 "SELECT country_code FROM autofill_profiles"));
2815
2816 ASSERT_TRUE(s.Step());
2817 std::string country_code = s.ColumnString(0);
2818 EXPECT_EQ("US", country_code);
2819 }
2820 }
2821
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698