OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
6 #include "base/file_util.h" | 6 #include "base/file_util.h" |
7 #include "base/files/scoped_temp_dir.h" | 7 #include "base/files/scoped_temp_dir.h" |
8 #include "base/platform_file.h" | 8 #include "base/platform_file.h" |
9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
10 #include "webkit/browser/fileapi/sandbox_origin_database.h" | 10 #include "webkit/browser/fileapi/sandbox_origin_database.h" |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
116 EXPECT_TRUE(database.GetPathForOrigin(kOrigin1, &path)); | 116 EXPECT_TRUE(database.GetPathForOrigin(kOrigin1, &path)); |
117 | 117 |
118 // Reset the database. | 118 // Reset the database. |
119 database.DropDatabase(); | 119 database.DropDatabase(); |
120 | 120 |
121 // kOrigin1 should still be marked as primary. | 121 // kOrigin1 should still be marked as primary. |
122 EXPECT_TRUE(database.HasOriginPath(kOrigin1)); | 122 EXPECT_TRUE(database.HasOriginPath(kOrigin1)); |
123 EXPECT_TRUE(database.GetPathForOrigin(kOrigin1, &path)); | 123 EXPECT_TRUE(database.GetPathForOrigin(kOrigin1, &path)); |
124 | 124 |
125 // Corrupt the primary origin file. | 125 // Corrupt the primary origin file. |
126 file_util::WriteFile( | 126 base::WriteFile(database.primary_origin_file(), kData.data(), kData.size()); |
127 database.primary_origin_file(), kData.data(), kData.size()); | |
128 | 127 |
129 // Reset the database. | 128 // Reset the database. |
130 database.DropDatabase(); | 129 database.DropDatabase(); |
131 | 130 |
132 // kOrigin1 is no longer marked as primary, and unfortunately we fail | 131 // kOrigin1 is no longer marked as primary, and unfortunately we fail |
133 // to find the data for the origin. | 132 // to find the data for the origin. |
134 EXPECT_FALSE(database.HasOriginPath(kOrigin1)); | 133 EXPECT_FALSE(database.HasOriginPath(kOrigin1)); |
135 } | 134 } |
136 | 135 |
137 TEST(SandboxPrioritizedOriginDatabaseTest, MigrationTest) { | 136 TEST(SandboxPrioritizedOriginDatabaseTest, MigrationTest) { |
(...skipping 19 matching lines...) Expand all Loading... |
157 EXPECT_FALSE(path1.empty()); | 156 EXPECT_FALSE(path1.empty()); |
158 EXPECT_TRUE(database_old.GetPathForOrigin(kOrigin2, &path2)); | 157 EXPECT_TRUE(database_old.GetPathForOrigin(kOrigin2, &path2)); |
159 EXPECT_FALSE(path2.empty()); | 158 EXPECT_FALSE(path2.empty()); |
160 | 159 |
161 EXPECT_TRUE(base::DirectoryExists(old_db_path)); | 160 EXPECT_TRUE(base::DirectoryExists(old_db_path)); |
162 | 161 |
163 // Populate the origin directory with some fake data. | 162 // Populate the origin directory with some fake data. |
164 old_dir_db_path1 = dir.path().Append(path1); | 163 old_dir_db_path1 = dir.path().Append(path1); |
165 ASSERT_TRUE(base::CreateDirectory(old_dir_db_path1)); | 164 ASSERT_TRUE(base::CreateDirectory(old_dir_db_path1)); |
166 EXPECT_EQ(static_cast<int>(kFakeDirectoryData1.size()), | 165 EXPECT_EQ(static_cast<int>(kFakeDirectoryData1.size()), |
167 file_util::WriteFile(old_dir_db_path1.AppendASCII("dummy"), | 166 base::WriteFile(old_dir_db_path1.AppendASCII("dummy"), |
168 kFakeDirectoryData1.data(), | 167 kFakeDirectoryData1.data(), |
169 kFakeDirectoryData1.size())); | 168 kFakeDirectoryData1.size())); |
170 old_dir_db_path2 = dir.path().Append(path2); | 169 old_dir_db_path2 = dir.path().Append(path2); |
171 ASSERT_TRUE(base::CreateDirectory(old_dir_db_path2)); | 170 ASSERT_TRUE(base::CreateDirectory(old_dir_db_path2)); |
172 EXPECT_EQ(static_cast<int>(kFakeDirectoryData2.size()), | 171 EXPECT_EQ(static_cast<int>(kFakeDirectoryData2.size()), |
173 file_util::WriteFile(old_dir_db_path2.AppendASCII("dummy"), | 172 base::WriteFile(old_dir_db_path2.AppendASCII("dummy"), |
174 kFakeDirectoryData2.data(), | 173 kFakeDirectoryData2.data(), |
175 kFakeDirectoryData2.size())); | 174 kFakeDirectoryData2.size())); |
176 } | 175 } |
177 | 176 |
178 // Re-open the directory using sandboxPrioritizedOriginDatabase. | 177 // Re-open the directory using sandboxPrioritizedOriginDatabase. |
179 SandboxPrioritizedOriginDatabase database(dir.path(), NULL); | 178 SandboxPrioritizedOriginDatabase database(dir.path(), NULL); |
180 | 179 |
181 // Set the kOrigin1 as a parimary origin. | 180 // Set the kOrigin1 as a parimary origin. |
182 // (Trying to initialize another origin should fail). | 181 // (Trying to initialize another origin should fail). |
183 EXPECT_TRUE(database.InitializePrimaryOrigin(kOrigin1)); | 182 EXPECT_TRUE(database.InitializePrimaryOrigin(kOrigin1)); |
184 EXPECT_FALSE(database.InitializePrimaryOrigin(kOrigin2)); | 183 EXPECT_FALSE(database.InitializePrimaryOrigin(kOrigin2)); |
185 | 184 |
(...skipping 20 matching lines...) Expand all Loading... |
206 EXPECT_TRUE(base::ReadFileToString( | 205 EXPECT_TRUE(base::ReadFileToString( |
207 dir_db_path.AppendASCII("dummy"), &origin_db_data)); | 206 dir_db_path.AppendASCII("dummy"), &origin_db_data)); |
208 EXPECT_EQ(kFakeDirectoryData2, origin_db_data); | 207 EXPECT_EQ(kFakeDirectoryData2, origin_db_data); |
209 | 208 |
210 // After the migration the kOrigin1 directory database path must be gone. | 209 // After the migration the kOrigin1 directory database path must be gone. |
211 EXPECT_FALSE(base::PathExists(old_dir_db_path1)); | 210 EXPECT_FALSE(base::PathExists(old_dir_db_path1)); |
212 EXPECT_TRUE(base::PathExists(old_dir_db_path2)); | 211 EXPECT_TRUE(base::PathExists(old_dir_db_path2)); |
213 } | 212 } |
214 | 213 |
215 } // namespace fileapi | 214 } // namespace fileapi |
OLD | NEW |