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)); | |
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.
| |
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 |