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/files/file_util.h" | 7 #include "base/files/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/macros.h" | 10 #include "base/macros.h" |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
123 // > .output version_nn.sql | 123 // > .output version_nn.sql |
124 // > .dump | 124 // > .dump |
125 void LoadDatabase(const base::FilePath::StringType& file); | 125 void LoadDatabase(const base::FilePath::StringType& file); |
126 | 126 |
127 private: | 127 private: |
128 base::ScopedTempDir temp_dir_; | 128 base::ScopedTempDir temp_dir_; |
129 | 129 |
130 DISALLOW_COPY_AND_ASSIGN(WebDatabaseMigrationTest); | 130 DISALLOW_COPY_AND_ASSIGN(WebDatabaseMigrationTest); |
131 }; | 131 }; |
132 | 132 |
133 const int WebDatabaseMigrationTest::kCurrentTestedVersionNumber = 68; | 133 const int WebDatabaseMigrationTest::kCurrentTestedVersionNumber = 69; |
134 | 134 |
135 void WebDatabaseMigrationTest::LoadDatabase( | 135 void WebDatabaseMigrationTest::LoadDatabase( |
136 const base::FilePath::StringType& file) { | 136 const base::FilePath::StringType& file) { |
137 std::string contents; | 137 std::string contents; |
138 ASSERT_TRUE(GetWebDatabaseData(base::FilePath(file), &contents)); | 138 ASSERT_TRUE(GetWebDatabaseData(base::FilePath(file), &contents)); |
139 | 139 |
140 sql::Connection connection; | 140 sql::Connection connection; |
141 ASSERT_TRUE(connection.Open(GetDatabasePath())); | 141 ASSERT_TRUE(connection.Open(GetDatabasePath())); |
142 ASSERT_TRUE(connection.Execute(contents.data())); | 142 ASSERT_TRUE(connection.Execute(contents.data())); |
143 } | 143 } |
(...skipping 13 matching lines...) Expand all Loading... |
157 // version_nn.sql file. | 157 // version_nn.sql file. |
158 if (i == 52) | 158 if (i == 52) |
159 continue; | 159 continue; |
160 | 160 |
161 connection.Raze(); | 161 connection.Raze(); |
162 const base::FilePath& file_name = base::FilePath::FromUTF8Unsafe( | 162 const base::FilePath& file_name = base::FilePath::FromUTF8Unsafe( |
163 "version_" + base::IntToString(i) + ".sql"); | 163 "version_" + base::IntToString(i) + ".sql"); |
164 ASSERT_NO_FATAL_FAILURE(LoadDatabase(file_name.value())) | 164 ASSERT_NO_FATAL_FAILURE(LoadDatabase(file_name.value())) |
165 << "Failed to load " << file_name.MaybeAsASCII(); | 165 << "Failed to load " << file_name.MaybeAsASCII(); |
166 DoMigration(); | 166 DoMigration(); |
| 167 |
167 EXPECT_EQ(expected_schema, RemoveQuotes(connection.GetSchema())) | 168 EXPECT_EQ(expected_schema, RemoveQuotes(connection.GetSchema())) |
168 << "For version " << i; | 169 << "For version " << i; |
169 } | 170 } |
170 } | 171 } |
171 | 172 |
172 // Tests that the all migrations from an empty database succeed. | 173 // Tests that the all migrations from an empty database succeed. |
173 TEST_F(WebDatabaseMigrationTest, MigrateEmptyToCurrent) { | 174 TEST_F(WebDatabaseMigrationTest, MigrateEmptyToCurrent) { |
174 DoMigration(); | 175 DoMigration(); |
175 | 176 |
176 // Verify post-conditions. These are expectations for current version of the | 177 // Verify post-conditions. These are expectations for current version of the |
(...skipping 886 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1063 "billing_address_id")); | 1064 "billing_address_id")); |
1064 | 1065 |
1065 sql::Statement read_masked(connection.GetUniqueStatement( | 1066 sql::Statement read_masked(connection.GetUniqueStatement( |
1066 "SELECT name_on_card, billing_address_id FROM masked_credit_cards")); | 1067 "SELECT name_on_card, billing_address_id FROM masked_credit_cards")); |
1067 ASSERT_TRUE(read_masked.Step()); | 1068 ASSERT_TRUE(read_masked.Step()); |
1068 EXPECT_EQ("Alice", read_masked.ColumnString(0)); | 1069 EXPECT_EQ("Alice", read_masked.ColumnString(0)); |
1069 EXPECT_TRUE(read_masked.ColumnString(1).empty()); | 1070 EXPECT_TRUE(read_masked.ColumnString(1).empty()); |
1070 } | 1071 } |
1071 } | 1072 } |
1072 | 1073 |
1073 // Tests delete show_in_default_list column in keywords table. | 1074 // Tests deletion of show_in_default_list column in keywords table. |
1074 TEST_F(WebDatabaseMigrationTest, MigrateVersion67ToCurrent) { | 1075 TEST_F(WebDatabaseMigrationTest, MigrateVersion67ToCurrent) { |
1075 ASSERT_NO_FATAL_FAILURE(LoadDatabase(FILE_PATH_LITERAL("version_67.sql"))); | 1076 ASSERT_NO_FATAL_FAILURE(LoadDatabase(FILE_PATH_LITERAL("version_67.sql"))); |
1076 | 1077 |
1077 // Verify pre-conditions. | 1078 // Verify pre-conditions. |
1078 { | 1079 { |
1079 sql::Connection connection; | 1080 sql::Connection connection; |
1080 ASSERT_TRUE(connection.Open(GetDatabasePath())); | 1081 ASSERT_TRUE(connection.Open(GetDatabasePath())); |
1081 ASSERT_TRUE(sql::MetaTable::DoesTableExist(&connection)); | 1082 ASSERT_TRUE(sql::MetaTable::DoesTableExist(&connection)); |
1082 | 1083 |
1083 sql::MetaTable meta_table; | 1084 sql::MetaTable meta_table; |
(...skipping 10 matching lines...) Expand all Loading... |
1094 ASSERT_TRUE(connection.Open(GetDatabasePath())); | 1095 ASSERT_TRUE(connection.Open(GetDatabasePath())); |
1095 ASSERT_TRUE(sql::MetaTable::DoesTableExist(&connection)); | 1096 ASSERT_TRUE(sql::MetaTable::DoesTableExist(&connection)); |
1096 | 1097 |
1097 // Check version. | 1098 // Check version. |
1098 EXPECT_EQ(kCurrentTestedVersionNumber, VersionFromConnection(&connection)); | 1099 EXPECT_EQ(kCurrentTestedVersionNumber, VersionFromConnection(&connection)); |
1099 | 1100 |
1100 EXPECT_FALSE( | 1101 EXPECT_FALSE( |
1101 connection.DoesColumnExist("keywords", "show_in_default_list")); | 1102 connection.DoesColumnExist("keywords", "show_in_default_list")); |
1102 } | 1103 } |
1103 } | 1104 } |
| 1105 |
| 1106 // Tests addition of last_visited column in keywords table. |
| 1107 TEST_F(WebDatabaseMigrationTest, MigrateVersion68ToCurrent) { |
| 1108 ASSERT_NO_FATAL_FAILURE(LoadDatabase(FILE_PATH_LITERAL("version_68.sql"))); |
| 1109 |
| 1110 // Verify pre-conditions. |
| 1111 { |
| 1112 sql::Connection connection; |
| 1113 ASSERT_TRUE(connection.Open(GetDatabasePath())); |
| 1114 ASSERT_TRUE(sql::MetaTable::DoesTableExist(&connection)); |
| 1115 |
| 1116 sql::MetaTable meta_table; |
| 1117 ASSERT_TRUE(meta_table.Init(&connection, 68, 68)); |
| 1118 |
| 1119 EXPECT_FALSE(connection.DoesColumnExist("keywords", "last_visited")); |
| 1120 } |
| 1121 |
| 1122 DoMigration(); |
| 1123 |
| 1124 // Verify post-conditions. |
| 1125 { |
| 1126 sql::Connection connection; |
| 1127 ASSERT_TRUE(connection.Open(GetDatabasePath())); |
| 1128 ASSERT_TRUE(sql::MetaTable::DoesTableExist(&connection)); |
| 1129 |
| 1130 // Check version. |
| 1131 EXPECT_EQ(kCurrentTestedVersionNumber, VersionFromConnection(&connection)); |
| 1132 |
| 1133 EXPECT_TRUE( |
| 1134 connection.DoesColumnExist("keywords", "last_visited")); |
| 1135 } |
| 1136 } |
OLD | NEW |