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 <string> | 5 #include <string> |
6 | 6 |
7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
8 #include "base/files/scoped_temp_dir.h" | 8 #include "base/files/scoped_temp_dir.h" |
9 #include "base/guid.h" | 9 #include "base/guid.h" |
10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
241 // > .output version_nn.sql | 241 // > .output version_nn.sql |
242 // > .dump | 242 // > .dump |
243 void LoadDatabase(const base::FilePath::StringType& file); | 243 void LoadDatabase(const base::FilePath::StringType& file); |
244 | 244 |
245 private: | 245 private: |
246 base::ScopedTempDir temp_dir_; | 246 base::ScopedTempDir temp_dir_; |
247 | 247 |
248 DISALLOW_COPY_AND_ASSIGN(WebDatabaseMigrationTest); | 248 DISALLOW_COPY_AND_ASSIGN(WebDatabaseMigrationTest); |
249 }; | 249 }; |
250 | 250 |
251 const int WebDatabaseMigrationTest::kCurrentTestedVersionNumber = 55; | 251 const int WebDatabaseMigrationTest::kCurrentTestedVersionNumber = 56; |
252 | 252 |
253 void WebDatabaseMigrationTest::LoadDatabase( | 253 void WebDatabaseMigrationTest::LoadDatabase( |
254 const base::FilePath::StringType& file) { | 254 const base::FilePath::StringType& file) { |
255 std::string contents; | 255 std::string contents; |
256 ASSERT_TRUE(GetWebDatabaseData(base::FilePath(file), &contents)); | 256 ASSERT_TRUE(GetWebDatabaseData(base::FilePath(file), &contents)); |
257 | 257 |
258 sql::Connection connection; | 258 sql::Connection connection; |
259 ASSERT_TRUE(connection.Open(GetDatabasePath())); | 259 ASSERT_TRUE(connection.Open(GetDatabasePath())); |
260 ASSERT_TRUE(connection.Execute(contents.data())); | 260 ASSERT_TRUE(connection.Execute(contents.data())); |
261 } | 261 } |
(...skipping 2311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2573 EXPECT_EQ(ASCIIToUTF16("john doe"), s.ColumnString16(1)); | 2573 EXPECT_EQ(ASCIIToUTF16("john doe"), s.ColumnString16(1)); |
2574 EXPECT_EQ(ASCIIToUTF16("john doe"), s.ColumnString16(2)); | 2574 EXPECT_EQ(ASCIIToUTF16("john doe"), s.ColumnString16(2)); |
2575 EXPECT_EQ(1384299200, s.ColumnInt64(3)); | 2575 EXPECT_EQ(1384299200, s.ColumnInt64(3)); |
2576 EXPECT_EQ(1384299200, s.ColumnInt64(4)); | 2576 EXPECT_EQ(1384299200, s.ColumnInt64(4)); |
2577 EXPECT_EQ(1, s.ColumnInt(5)); | 2577 EXPECT_EQ(1, s.ColumnInt(5)); |
2578 | 2578 |
2579 // No more entries expected. | 2579 // No more entries expected. |
2580 ASSERT_FALSE(s.Step()); | 2580 ASSERT_FALSE(s.Step()); |
2581 } | 2581 } |
2582 } | 2582 } |
| 2583 |
| 2584 // Tests that migrating from version 55 to version 56 adds the language_code |
| 2585 // column to autofill_profiles table. |
| 2586 TEST_F(WebDatabaseMigrationTest, MigrateVersion55ToCurrent) { |
| 2587 ASSERT_NO_FATAL_FAILURE(LoadDatabase(FILE_PATH_LITERAL("version_55.sql"))); |
| 2588 |
| 2589 // Verify pre-conditions. These are expectations for version 55 of the |
| 2590 // database. |
| 2591 { |
| 2592 sql::Connection connection; |
| 2593 ASSERT_TRUE(connection.Open(GetDatabasePath())); |
| 2594 ASSERT_TRUE(sql::MetaTable::DoesTableExist(&connection)); |
| 2595 |
| 2596 EXPECT_FALSE( |
| 2597 connection.DoesColumnExist("autofill_profiles", "language_code")); |
| 2598 } |
| 2599 |
| 2600 DoMigration(); |
| 2601 |
| 2602 // Verify post-conditions. These are expectations for current version of the |
| 2603 // database. |
| 2604 { |
| 2605 sql::Connection connection; |
| 2606 ASSERT_TRUE(connection.Open(GetDatabasePath())); |
| 2607 ASSERT_TRUE(sql::MetaTable::DoesTableExist(&connection)); |
| 2608 |
| 2609 // Check version. |
| 2610 EXPECT_EQ(kCurrentTestedVersionNumber, VersionFromConnection(&connection)); |
| 2611 |
| 2612 // The language_code column should have been added to autofill_profiles |
| 2613 // table. |
| 2614 EXPECT_TRUE( |
| 2615 connection.DoesColumnExist("autofill_profiles", "language_code")); |
| 2616 |
| 2617 // Data should have been preserved. Language code should have been set to |
| 2618 // empty string. |
| 2619 sql::Statement s_profiles( |
| 2620 connection.GetUniqueStatement( |
| 2621 "SELECT guid, company_name, street_address, dependent_locality," |
| 2622 " city, state, zipcode, sorting_code, country_code, language_code," |
| 2623 " date_modified, origin " |
| 2624 "FROM autofill_profiles")); |
| 2625 |
| 2626 ASSERT_TRUE(s_profiles.Step()); |
| 2627 EXPECT_EQ("00000000-0000-0000-0000-000000000001", |
| 2628 s_profiles.ColumnString(0)); |
| 2629 EXPECT_EQ(ASCIIToUTF16("Google Inc"), s_profiles.ColumnString16(1)); |
| 2630 EXPECT_EQ(ASCIIToUTF16("340 Main St"), |
| 2631 s_profiles.ColumnString16(2)); |
| 2632 EXPECT_EQ(base::string16(), s_profiles.ColumnString16(3)); |
| 2633 EXPECT_EQ(ASCIIToUTF16("Los Angeles"), s_profiles.ColumnString16(4)); |
| 2634 EXPECT_EQ(ASCIIToUTF16("CA"), s_profiles.ColumnString16(5)); |
| 2635 EXPECT_EQ(ASCIIToUTF16("90291"), s_profiles.ColumnString16(6)); |
| 2636 EXPECT_EQ(base::string16(), s_profiles.ColumnString16(7)); |
| 2637 EXPECT_EQ(ASCIIToUTF16("US"), s_profiles.ColumnString16(8)); |
| 2638 EXPECT_EQ(base::string16(), s_profiles.ColumnString16(9)); |
| 2639 EXPECT_EQ(1395948829, s_profiles.ColumnInt(10)); |
| 2640 EXPECT_EQ(ASCIIToUTF16("Chrome settings"), s_profiles.ColumnString16(11)); |
| 2641 |
| 2642 // No more entries expected. |
| 2643 ASSERT_FALSE(s_profiles.Step()); |
| 2644 } |
| 2645 } |
OLD | NEW |