Index: components/webdata/common/web_database_migration_unittest.cc |
diff --git a/components/webdata/common/web_database_migration_unittest.cc b/components/webdata/common/web_database_migration_unittest.cc |
index 0d0c487407001b75497d0fad519ccf548b417cbd..26563b22c58b5dc50311ec58fcc3879d03b5ba51 100644 |
--- a/components/webdata/common/web_database_migration_unittest.cc |
+++ b/components/webdata/common/web_database_migration_unittest.cc |
@@ -248,7 +248,7 @@ class WebDatabaseMigrationTest : public testing::Test { |
DISALLOW_COPY_AND_ASSIGN(WebDatabaseMigrationTest); |
}; |
-const int WebDatabaseMigrationTest::kCurrentTestedVersionNumber = 55; |
+const int WebDatabaseMigrationTest::kCurrentTestedVersionNumber = 56; |
void WebDatabaseMigrationTest::LoadDatabase( |
const base::FilePath::StringType& file) { |
@@ -2580,3 +2580,66 @@ TEST_F(WebDatabaseMigrationTest, MigrateVersion54ToCurrent) { |
ASSERT_FALSE(s.Step()); |
} |
} |
+ |
+// Tests that migrating from version 55 to version 56 adds the language_code |
+// column to autofill_profiles table. |
+TEST_F(WebDatabaseMigrationTest, MigrateVersion55ToCurrent) { |
+ ASSERT_NO_FATAL_FAILURE(LoadDatabase(FILE_PATH_LITERAL("version_55.sql"))); |
+ |
+ // Verify pre-conditions. These are expectations for version 55 of the |
+ // database. |
+ { |
+ sql::Connection connection; |
+ ASSERT_TRUE(connection.Open(GetDatabasePath())); |
+ ASSERT_TRUE(sql::MetaTable::DoesTableExist(&connection)); |
+ |
+ EXPECT_FALSE( |
+ connection.DoesColumnExist("autofill_profiles", "language_code")); |
+ } |
+ |
+ DoMigration(); |
+ |
+ // Verify post-conditions. These are expectations for current version of the |
+ // database. |
+ { |
+ sql::Connection connection; |
+ ASSERT_TRUE(connection.Open(GetDatabasePath())); |
+ ASSERT_TRUE(sql::MetaTable::DoesTableExist(&connection)); |
+ |
+ // Check version. |
+ EXPECT_EQ(kCurrentTestedVersionNumber, VersionFromConnection(&connection)); |
+ |
+ // The language_code column should have been added to autofill_profiles |
+ // table. |
+ EXPECT_TRUE( |
+ connection.DoesColumnExist("autofill_profiles", "language_code")); |
+ |
+ // Data should have been preserved. Language code should have been set to |
+ // empty string. |
+ sql::Statement s_profiles( |
+ connection.GetUniqueStatement( |
+ "SELECT guid, company_name, street_address, dependent_locality," |
+ " city, state, zipcode, sorting_code, country_code, language_code," |
+ " date_modified, origin " |
+ "FROM autofill_profiles")); |
+ |
+ ASSERT_TRUE(s_profiles.Step()); |
+ EXPECT_EQ("00000000-0000-0000-0000-000000000001", |
+ s_profiles.ColumnString(0)); |
+ EXPECT_EQ(ASCIIToUTF16("Google Inc"), s_profiles.ColumnString16(1)); |
+ EXPECT_EQ(ASCIIToUTF16("340 Main St"), |
+ s_profiles.ColumnString16(2)); |
+ EXPECT_EQ(base::string16(), s_profiles.ColumnString16(3)); |
+ EXPECT_EQ(ASCIIToUTF16("Los Angeles"), s_profiles.ColumnString16(4)); |
+ EXPECT_EQ(ASCIIToUTF16("CA"), s_profiles.ColumnString16(5)); |
+ EXPECT_EQ(ASCIIToUTF16("90291"), s_profiles.ColumnString16(6)); |
+ EXPECT_EQ(base::string16(), s_profiles.ColumnString16(7)); |
+ EXPECT_EQ(ASCIIToUTF16("US"), s_profiles.ColumnString16(8)); |
+ EXPECT_EQ(base::string16(), s_profiles.ColumnString16(9)); |
Ilya Sherman
2014/03/29 01:24:42
Is the datatype string16 or std::string?
please use gerrit instead
2014/04/02 21:54:52
std::string. Fixed.
|
+ EXPECT_EQ(1395948829, s_profiles.ColumnInt(10)); |
+ EXPECT_EQ(ASCIIToUTF16("Chrome settings"), s_profiles.ColumnString16(11)); |
+ |
+ // No more entries expected. |
+ ASSERT_FALSE(s_profiles.Step()); |
+ } |
+} |