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 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
249 // > .output version_nn.sql | 249 // > .output version_nn.sql |
250 // > .dump | 250 // > .dump |
251 void LoadDatabase(const base::FilePath::StringType& file); | 251 void LoadDatabase(const base::FilePath::StringType& file); |
252 | 252 |
253 private: | 253 private: |
254 base::ScopedTempDir temp_dir_; | 254 base::ScopedTempDir temp_dir_; |
255 | 255 |
256 DISALLOW_COPY_AND_ASSIGN(WebDatabaseMigrationTest); | 256 DISALLOW_COPY_AND_ASSIGN(WebDatabaseMigrationTest); |
257 }; | 257 }; |
258 | 258 |
259 const int WebDatabaseMigrationTest::kCurrentTestedVersionNumber = 56; | 259 const int WebDatabaseMigrationTest::kCurrentTestedVersionNumber = 57; |
260 | 260 |
261 void WebDatabaseMigrationTest::LoadDatabase( | 261 void WebDatabaseMigrationTest::LoadDatabase( |
262 const base::FilePath::StringType& file) { | 262 const base::FilePath::StringType& file) { |
263 std::string contents; | 263 std::string contents; |
264 ASSERT_TRUE(GetWebDatabaseData(base::FilePath(file), &contents)); | 264 ASSERT_TRUE(GetWebDatabaseData(base::FilePath(file), &contents)); |
265 | 265 |
266 sql::Connection connection; | 266 sql::Connection connection; |
267 ASSERT_TRUE(connection.Open(GetDatabasePath())); | 267 ASSERT_TRUE(connection.Open(GetDatabasePath())); |
268 ASSERT_TRUE(connection.Execute(contents.data())); | 268 ASSERT_TRUE(connection.Execute(contents.data())); |
269 } | 269 } |
(...skipping 2393 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2663 EXPECT_EQ(base::string16(), s_profiles.ColumnString16(7)); | 2663 EXPECT_EQ(base::string16(), s_profiles.ColumnString16(7)); |
2664 EXPECT_EQ(ASCIIToUTF16("US"), s_profiles.ColumnString16(8)); | 2664 EXPECT_EQ(ASCIIToUTF16("US"), s_profiles.ColumnString16(8)); |
2665 EXPECT_EQ(1395948829, s_profiles.ColumnInt(9)); | 2665 EXPECT_EQ(1395948829, s_profiles.ColumnInt(9)); |
2666 EXPECT_EQ(ASCIIToUTF16("Chrome settings"), s_profiles.ColumnString16(10)); | 2666 EXPECT_EQ(ASCIIToUTF16("Chrome settings"), s_profiles.ColumnString16(10)); |
2667 EXPECT_EQ(std::string(), s_profiles.ColumnString(11)); | 2667 EXPECT_EQ(std::string(), s_profiles.ColumnString(11)); |
2668 | 2668 |
2669 // No more entries expected. | 2669 // No more entries expected. |
2670 ASSERT_FALSE(s_profiles.Step()); | 2670 ASSERT_FALSE(s_profiles.Step()); |
2671 } | 2671 } |
2672 } | 2672 } |
2673 | |
2674 // Tests that migrating from version 56 to version 57 adds the full_name | |
2675 // column to autofill_profile_names table. | |
2676 TEST_F(WebDatabaseMigrationTest, MigrateVersion56ToCurrent) { | |
2677 ASSERT_NO_FATAL_FAILURE(LoadDatabase(FILE_PATH_LITERAL("version_56.sql"))); | |
2678 | |
2679 // Verify pre-conditions. These are expectations for version 56 of the | |
2680 // database. | |
2681 { | |
2682 sql::Connection connection; | |
2683 ASSERT_TRUE(connection.Open(GetDatabasePath())); | |
2684 ASSERT_TRUE(sql::MetaTable::DoesTableExist(&connection)); | |
2685 | |
2686 EXPECT_FALSE( | |
2687 connection.DoesColumnExist("autofill_profile_names", "full_name")); | |
Ilya Sherman
2014/06/12 23:25:25
I'd prefer that you also verify that the table sta
Evan Stade
2014/06/14 01:17:24
Done.
| |
2688 } | |
2689 | |
2690 DoMigration(); | |
2691 | |
2692 // Verify post-conditions. These are expectations for current version of the | |
2693 // database. | |
2694 { | |
2695 sql::Connection connection; | |
2696 ASSERT_TRUE(connection.Open(GetDatabasePath())); | |
2697 ASSERT_TRUE(sql::MetaTable::DoesTableExist(&connection)); | |
2698 | |
2699 // Check version. | |
2700 EXPECT_EQ(kCurrentTestedVersionNumber, VersionFromConnection(&connection)); | |
2701 | |
2702 // The language_code column should have been added to autofill_profiles | |
2703 // table. | |
Ilya Sherman
2014/06/12 23:25:25
nit: Please update this comment.
Evan Stade
2014/06/14 01:17:23
Done.
| |
2704 EXPECT_TRUE( | |
2705 connection.DoesColumnExist("autofill_profile_names", "full_name")); | |
2706 | |
2707 // Data should have been preserved. Full name should have been set to the | |
2708 // empty string. | |
2709 sql::Statement s_names( | |
2710 connection.GetUniqueStatement( | |
2711 "SELECT guid, first_name, middle_name, last_name, full_name " | |
2712 "FROM autofill_profile_names")); | |
2713 | |
2714 ASSERT_TRUE(s_names.Step()); | |
2715 EXPECT_EQ("B41FE6E0-B13E-2A2A-BF0B-29FCE2C3ADBD", s_names.ColumnString(0)); | |
2716 EXPECT_EQ(ASCIIToUTF16("Jon"), s_names.ColumnString16(1)); | |
2717 EXPECT_EQ(ASCIIToUTF16(""), s_names.ColumnString16(2)); | |
2718 EXPECT_EQ(ASCIIToUTF16("Smith"), s_names.ColumnString16(3)); | |
2719 EXPECT_EQ(ASCIIToUTF16(""), s_names.ColumnString16(4)); | |
Ilya Sherman
2014/06/12 23:25:25
nit: "base::string16()" is generally preferred ove
Evan Stade
2014/06/14 01:17:23
Done.
| |
2720 | |
2721 // No more entries expected. | |
2722 ASSERT_FALSE(s_names.Step()); | |
2723 } | |
2724 } | |
OLD | NEW |