Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(291)

Side by Side Diff: webkit/browser/fileapi/sandbox_directory_database_unittest.cc

Issue 145303002: Convert Media Galleries to use base::File (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 "webkit/browser/fileapi/sandbox_directory_database.h" 5 #include "webkit/browser/fileapi/sandbox_directory_database.h"
6 6
7 #include <math.h> 7 #include <math.h>
8 #include <limits> 8 #include <limits>
9 9
10 #include "base/file_util.h" 10 #include "base/file_util.h"
11 #include "base/files/file.h"
11 #include "base/files/scoped_temp_dir.h" 12 #include "base/files/scoped_temp_dir.h"
12 #include "base/memory/scoped_ptr.h" 13 #include "base/memory/scoped_ptr.h"
13 #include "base/platform_file.h"
14 #include "base/strings/string_number_conversions.h" 14 #include "base/strings/string_number_conversions.h"
15 #include "base/strings/string_util.h" 15 #include "base/strings/string_util.h"
16 #include "testing/gtest/include/gtest/gtest.h" 16 #include "testing/gtest/include/gtest/gtest.h"
17 #include "third_party/leveldatabase/src/include/leveldb/db.h" 17 #include "third_party/leveldatabase/src/include/leveldb/db.h"
18 #include "webkit/browser/fileapi/sandbox_database_test_helper.h" 18 #include "webkit/browser/fileapi/sandbox_database_test_helper.h"
19 #include "webkit/common/fileapi/file_system_util.h" 19 #include "webkit/common/fileapi/file_system_util.h"
20 20
21 #define FPL(x) FILE_PATH_LITERAL(x) 21 #define FPL(x) FILE_PATH_LITERAL(x)
22 22
23 namespace fileapi { 23 namespace fileapi {
(...skipping 20 matching lines...) Expand all
44 // Call CloseDatabase() to avoid having multiple database instances for 44 // Call CloseDatabase() to avoid having multiple database instances for
45 // single directory at once. 45 // single directory at once.
46 CloseDatabase(); 46 CloseDatabase();
47 db_.reset(new SandboxDirectoryDatabase(path())); 47 db_.reset(new SandboxDirectoryDatabase(path()));
48 } 48 }
49 49
50 void CloseDatabase() { 50 void CloseDatabase() {
51 db_.reset(); 51 db_.reset();
52 } 52 }
53 53
54 base::PlatformFileError AddFileInfo( 54 base::File::Error AddFileInfo(
55 FileId parent_id, const base::FilePath::StringType& name) { 55 FileId parent_id, const base::FilePath::StringType& name) {
56 FileId file_id; 56 FileId file_id;
57 FileInfo info; 57 FileInfo info;
58 info.parent_id = parent_id; 58 info.parent_id = parent_id;
59 info.name = name; 59 info.name = name;
60 return db_->AddFileInfo(info, &file_id); 60 return db_->AddFileInfo(info, &file_id);
61 } 61 }
62 62
63 void CreateDirectory(FileId parent_id, 63 void CreateDirectory(FileId parent_id,
64 const base::FilePath::StringType& name, 64 const base::FilePath::StringType& name,
65 FileId* file_id_out) { 65 FileId* file_id_out) {
66 FileInfo info; 66 FileInfo info;
67 info.parent_id = parent_id; 67 info.parent_id = parent_id;
68 info.name = name; 68 info.name = name;
69 ASSERT_EQ(base::PLATFORM_FILE_OK, db_->AddFileInfo(info, file_id_out)); 69 ASSERT_EQ(base::File::FILE_OK, db_->AddFileInfo(info, file_id_out));
70 } 70 }
71 71
72 void CreateFile(FileId parent_id, 72 void CreateFile(FileId parent_id,
73 const base::FilePath::StringType& name, 73 const base::FilePath::StringType& name,
74 const base::FilePath::StringType& data_path, 74 const base::FilePath::StringType& data_path,
75 FileId* file_id_out) { 75 FileId* file_id_out) {
76 FileId file_id; 76 FileId file_id;
77 77
78 FileInfo info; 78 FileInfo info;
79 info.parent_id = parent_id; 79 info.parent_id = parent_id;
80 info.name = name; 80 info.name = name;
81 info.data_path = base::FilePath(data_path).NormalizePathSeparators(); 81 info.data_path = base::FilePath(data_path).NormalizePathSeparators();
82 ASSERT_EQ(base::PLATFORM_FILE_OK, db_->AddFileInfo(info, &file_id)); 82 ASSERT_EQ(base::File::FILE_OK, db_->AddFileInfo(info, &file_id));
83 83
84 base::FilePath local_path = path().Append(data_path); 84 base::FilePath local_path = path().Append(data_path);
85 if (!base::DirectoryExists(local_path.DirName())) 85 if (!base::DirectoryExists(local_path.DirName()))
86 ASSERT_TRUE(base::CreateDirectory(local_path.DirName())); 86 ASSERT_TRUE(base::CreateDirectory(local_path.DirName()));
87 87
88 bool created = false; 88 base::File file(local_path,
89 base::PlatformFileError error = base::PLATFORM_FILE_ERROR_FAILED; 89 base::File::FLAG_CREATE | base::File::FLAG_WRITE);
90 base::PlatformFile file = base::CreatePlatformFile( 90 ASSERT_TRUE(file.IsValid());
91 local_path, 91 ASSERT_TRUE(file.created());
92 base::PLATFORM_FILE_CREATE | base::PLATFORM_FILE_WRITE,
93 &created, &error);
94 ASSERT_EQ(base::PLATFORM_FILE_OK, error);
95 ASSERT_TRUE(created);
96 ASSERT_TRUE(base::ClosePlatformFile(file));
97 92
98 if (file_id_out) 93 if (file_id_out)
99 *file_id_out = file_id; 94 *file_id_out = file_id;
100 } 95 }
101 96
102 void ClearDatabaseAndDirectory() { 97 void ClearDatabaseAndDirectory() {
103 db_.reset(); 98 db_.reset();
104 ASSERT_TRUE(base::DeleteFile(path(), true /* recursive */)); 99 ASSERT_TRUE(base::DeleteFile(path(), true /* recursive */));
105 ASSERT_TRUE(base::CreateDirectory(path())); 100 ASSERT_TRUE(base::CreateDirectory(path()));
106 db_.reset(new SandboxDirectoryDatabase(path())); 101 db_.reset(new SandboxDirectoryDatabase(path()));
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 FileId file_id = 0; 150 FileId file_id = 0;
156 FileInfo info; 151 FileInfo info;
157 EXPECT_TRUE(db()->GetFileInfo(file_id, &info)); 152 EXPECT_TRUE(db()->GetFileInfo(file_id, &info));
158 EXPECT_EQ(0, info.parent_id); 153 EXPECT_EQ(0, info.parent_id);
159 EXPECT_TRUE(info.name.empty()); 154 EXPECT_TRUE(info.name.empty());
160 EXPECT_TRUE(info.data_path.empty()); 155 EXPECT_TRUE(info.data_path.empty());
161 } 156 }
162 157
163 TEST_F(SandboxDirectoryDatabaseTest, TestMissingParentAddFileInfo) { 158 TEST_F(SandboxDirectoryDatabaseTest, TestMissingParentAddFileInfo) {
164 FileId parent_id = 7; 159 FileId parent_id = 7;
165 EXPECT_EQ(base::PLATFORM_FILE_ERROR_NOT_A_DIRECTORY, 160 EXPECT_EQ(base::File::FILE_ERROR_NOT_A_DIRECTORY,
166 AddFileInfo(parent_id, FILE_PATH_LITERAL("foo"))); 161 AddFileInfo(parent_id, FILE_PATH_LITERAL("foo")));
167 } 162 }
168 163
169 TEST_F(SandboxDirectoryDatabaseTest, TestAddNameClash) { 164 TEST_F(SandboxDirectoryDatabaseTest, TestAddNameClash) {
170 FileInfo info; 165 FileInfo info;
171 FileId file_id; 166 FileId file_id;
172 info.parent_id = 0; 167 info.parent_id = 0;
173 info.name = FILE_PATH_LITERAL("dir 0"); 168 info.name = FILE_PATH_LITERAL("dir 0");
174 EXPECT_EQ(base::PLATFORM_FILE_OK, db()->AddFileInfo(info, &file_id)); 169 EXPECT_EQ(base::File::FILE_OK, db()->AddFileInfo(info, &file_id));
175 170
176 // Check for name clash in the root directory. 171 // Check for name clash in the root directory.
177 base::FilePath::StringType name = info.name; 172 base::FilePath::StringType name = info.name;
178 EXPECT_EQ(base::PLATFORM_FILE_ERROR_EXISTS, AddFileInfo(0, name)); 173 EXPECT_EQ(base::File::FILE_ERROR_EXISTS, AddFileInfo(0, name));
179 name = FILE_PATH_LITERAL("dir 1"); 174 name = FILE_PATH_LITERAL("dir 1");
180 EXPECT_EQ(base::PLATFORM_FILE_OK, AddFileInfo(0, name)); 175 EXPECT_EQ(base::File::FILE_OK, AddFileInfo(0, name));
181 176
182 name = FILE_PATH_LITERAL("subdir 0"); 177 name = FILE_PATH_LITERAL("subdir 0");
183 EXPECT_EQ(base::PLATFORM_FILE_OK, AddFileInfo(file_id, name)); 178 EXPECT_EQ(base::File::FILE_OK, AddFileInfo(file_id, name));
184 179
185 // Check for name clash in a subdirectory. 180 // Check for name clash in a subdirectory.
186 EXPECT_EQ(base::PLATFORM_FILE_ERROR_EXISTS, AddFileInfo(file_id, name)); 181 EXPECT_EQ(base::File::FILE_ERROR_EXISTS, AddFileInfo(file_id, name));
187 name = FILE_PATH_LITERAL("subdir 1"); 182 name = FILE_PATH_LITERAL("subdir 1");
188 EXPECT_EQ(base::PLATFORM_FILE_OK, AddFileInfo(file_id, name)); 183 EXPECT_EQ(base::File::FILE_OK, AddFileInfo(file_id, name));
189 } 184 }
190 185
191 TEST_F(SandboxDirectoryDatabaseTest, TestRenameNoMoveNameClash) { 186 TEST_F(SandboxDirectoryDatabaseTest, TestRenameNoMoveNameClash) {
192 FileInfo info; 187 FileInfo info;
193 FileId file_id0; 188 FileId file_id0;
194 base::FilePath::StringType name0 = FILE_PATH_LITERAL("foo"); 189 base::FilePath::StringType name0 = FILE_PATH_LITERAL("foo");
195 base::FilePath::StringType name1 = FILE_PATH_LITERAL("bar"); 190 base::FilePath::StringType name1 = FILE_PATH_LITERAL("bar");
196 base::FilePath::StringType name2 = FILE_PATH_LITERAL("bas"); 191 base::FilePath::StringType name2 = FILE_PATH_LITERAL("bas");
197 info.parent_id = 0; 192 info.parent_id = 0;
198 info.name = name0; 193 info.name = name0;
199 EXPECT_EQ(base::PLATFORM_FILE_OK, db()->AddFileInfo(info, &file_id0)); 194 EXPECT_EQ(base::File::FILE_OK, db()->AddFileInfo(info, &file_id0));
200 EXPECT_EQ(base::PLATFORM_FILE_OK, AddFileInfo(0, name1)); 195 EXPECT_EQ(base::File::FILE_OK, AddFileInfo(0, name1));
201 info.name = name1; 196 info.name = name1;
202 EXPECT_FALSE(db()->UpdateFileInfo(file_id0, info)); 197 EXPECT_FALSE(db()->UpdateFileInfo(file_id0, info));
203 info.name = name2; 198 info.name = name2;
204 EXPECT_TRUE(db()->UpdateFileInfo(file_id0, info)); 199 EXPECT_TRUE(db()->UpdateFileInfo(file_id0, info));
205 } 200 }
206 201
207 TEST_F(SandboxDirectoryDatabaseTest, TestMoveSameNameNameClash) { 202 TEST_F(SandboxDirectoryDatabaseTest, TestMoveSameNameNameClash) {
208 FileInfo info; 203 FileInfo info;
209 FileId file_id0; 204 FileId file_id0;
210 FileId file_id1; 205 FileId file_id1;
211 base::FilePath::StringType name0 = FILE_PATH_LITERAL("foo"); 206 base::FilePath::StringType name0 = FILE_PATH_LITERAL("foo");
212 base::FilePath::StringType name1 = FILE_PATH_LITERAL("bar"); 207 base::FilePath::StringType name1 = FILE_PATH_LITERAL("bar");
213 info.parent_id = 0; 208 info.parent_id = 0;
214 info.name = name0; 209 info.name = name0;
215 EXPECT_EQ(base::PLATFORM_FILE_OK, db()->AddFileInfo(info, &file_id0)); 210 EXPECT_EQ(base::File::FILE_OK, db()->AddFileInfo(info, &file_id0));
216 info.parent_id = file_id0; 211 info.parent_id = file_id0;
217 EXPECT_EQ(base::PLATFORM_FILE_OK, db()->AddFileInfo(info, &file_id1)); 212 EXPECT_EQ(base::File::FILE_OK, db()->AddFileInfo(info, &file_id1));
218 info.parent_id = 0; 213 info.parent_id = 0;
219 EXPECT_FALSE(db()->UpdateFileInfo(file_id1, info)); 214 EXPECT_FALSE(db()->UpdateFileInfo(file_id1, info));
220 info.name = name1; 215 info.name = name1;
221 EXPECT_TRUE(db()->UpdateFileInfo(file_id1, info)); 216 EXPECT_TRUE(db()->UpdateFileInfo(file_id1, info));
222 } 217 }
223 218
224 TEST_F(SandboxDirectoryDatabaseTest, TestMoveRenameNameClash) { 219 TEST_F(SandboxDirectoryDatabaseTest, TestMoveRenameNameClash) {
225 FileInfo info; 220 FileInfo info;
226 FileId file_id0; 221 FileId file_id0;
227 FileId file_id1; 222 FileId file_id1;
228 base::FilePath::StringType name0 = FILE_PATH_LITERAL("foo"); 223 base::FilePath::StringType name0 = FILE_PATH_LITERAL("foo");
229 base::FilePath::StringType name1 = FILE_PATH_LITERAL("bar"); 224 base::FilePath::StringType name1 = FILE_PATH_LITERAL("bar");
230 base::FilePath::StringType name2 = FILE_PATH_LITERAL("bas"); 225 base::FilePath::StringType name2 = FILE_PATH_LITERAL("bas");
231 info.parent_id = 0; 226 info.parent_id = 0;
232 info.name = name0; 227 info.name = name0;
233 EXPECT_EQ(base::PLATFORM_FILE_OK, db()->AddFileInfo(info, &file_id0)); 228 EXPECT_EQ(base::File::FILE_OK, db()->AddFileInfo(info, &file_id0));
234 info.parent_id = file_id0; 229 info.parent_id = file_id0;
235 info.name = name1; 230 info.name = name1;
236 EXPECT_EQ(base::PLATFORM_FILE_OK, db()->AddFileInfo(info, &file_id1)); 231 EXPECT_EQ(base::File::FILE_OK, db()->AddFileInfo(info, &file_id1));
237 info.parent_id = 0; 232 info.parent_id = 0;
238 info.name = name0; 233 info.name = name0;
239 EXPECT_FALSE(db()->UpdateFileInfo(file_id1, info)); 234 EXPECT_FALSE(db()->UpdateFileInfo(file_id1, info));
240 info.name = name1; 235 info.name = name1;
241 EXPECT_TRUE(db()->UpdateFileInfo(file_id1, info)); 236 EXPECT_TRUE(db()->UpdateFileInfo(file_id1, info));
242 // Also test a successful move+rename. 237 // Also test a successful move+rename.
243 info.parent_id = file_id0; 238 info.parent_id = file_id0;
244 info.name = name2; 239 info.name = name2;
245 EXPECT_TRUE(db()->UpdateFileInfo(file_id1, info)); 240 EXPECT_TRUE(db()->UpdateFileInfo(file_id1, info));
246 } 241 }
247 242
248 TEST_F(SandboxDirectoryDatabaseTest, TestRemoveWithChildren) { 243 TEST_F(SandboxDirectoryDatabaseTest, TestRemoveWithChildren) {
249 FileInfo info; 244 FileInfo info;
250 FileId file_id0; 245 FileId file_id0;
251 FileId file_id1; 246 FileId file_id1;
252 info.parent_id = 0; 247 info.parent_id = 0;
253 info.name = FILE_PATH_LITERAL("foo"); 248 info.name = FILE_PATH_LITERAL("foo");
254 EXPECT_EQ(base::PLATFORM_FILE_OK, db()->AddFileInfo(info, &file_id0)); 249 EXPECT_EQ(base::File::FILE_OK, db()->AddFileInfo(info, &file_id0));
255 info.parent_id = file_id0; 250 info.parent_id = file_id0;
256 EXPECT_EQ(base::PLATFORM_FILE_OK, db()->AddFileInfo(info, &file_id1)); 251 EXPECT_EQ(base::File::FILE_OK, db()->AddFileInfo(info, &file_id1));
257 EXPECT_FALSE(db()->RemoveFileInfo(file_id0)); 252 EXPECT_FALSE(db()->RemoveFileInfo(file_id0));
258 EXPECT_TRUE(db()->RemoveFileInfo(file_id1)); 253 EXPECT_TRUE(db()->RemoveFileInfo(file_id1));
259 EXPECT_TRUE(db()->RemoveFileInfo(file_id0)); 254 EXPECT_TRUE(db()->RemoveFileInfo(file_id0));
260 } 255 }
261 256
262 TEST_F(SandboxDirectoryDatabaseTest, TestGetChildWithName) { 257 TEST_F(SandboxDirectoryDatabaseTest, TestGetChildWithName) {
263 FileInfo info; 258 FileInfo info;
264 FileId file_id0; 259 FileId file_id0;
265 FileId file_id1; 260 FileId file_id1;
266 base::FilePath::StringType name0 = FILE_PATH_LITERAL("foo"); 261 base::FilePath::StringType name0 = FILE_PATH_LITERAL("foo");
267 base::FilePath::StringType name1 = FILE_PATH_LITERAL("bar"); 262 base::FilePath::StringType name1 = FILE_PATH_LITERAL("bar");
268 info.parent_id = 0; 263 info.parent_id = 0;
269 info.name = name0; 264 info.name = name0;
270 EXPECT_EQ(base::PLATFORM_FILE_OK, db()->AddFileInfo(info, &file_id0)); 265 EXPECT_EQ(base::File::FILE_OK, db()->AddFileInfo(info, &file_id0));
271 info.parent_id = file_id0; 266 info.parent_id = file_id0;
272 info.name = name1; 267 info.name = name1;
273 EXPECT_EQ(base::PLATFORM_FILE_OK, db()->AddFileInfo(info, &file_id1)); 268 EXPECT_EQ(base::File::FILE_OK, db()->AddFileInfo(info, &file_id1));
274 EXPECT_NE(file_id0, file_id1); 269 EXPECT_NE(file_id0, file_id1);
275 270
276 FileId check_file_id; 271 FileId check_file_id;
277 EXPECT_FALSE(db()->GetChildWithName(0, name1, &check_file_id)); 272 EXPECT_FALSE(db()->GetChildWithName(0, name1, &check_file_id));
278 EXPECT_TRUE(db()->GetChildWithName(0, name0, &check_file_id)); 273 EXPECT_TRUE(db()->GetChildWithName(0, name0, &check_file_id));
279 EXPECT_EQ(file_id0, check_file_id); 274 EXPECT_EQ(file_id0, check_file_id);
280 EXPECT_FALSE(db()->GetChildWithName(file_id0, name0, &check_file_id)); 275 EXPECT_FALSE(db()->GetChildWithName(file_id0, name0, &check_file_id));
281 EXPECT_TRUE(db()->GetChildWithName(file_id0, name1, &check_file_id)); 276 EXPECT_TRUE(db()->GetChildWithName(file_id0, name1, &check_file_id));
282 EXPECT_EQ(file_id1, check_file_id); 277 EXPECT_EQ(file_id1, check_file_id);
283 } 278 }
284 279
285 TEST_F(SandboxDirectoryDatabaseTest, TestGetFileWithPath) { 280 TEST_F(SandboxDirectoryDatabaseTest, TestGetFileWithPath) {
286 FileInfo info; 281 FileInfo info;
287 FileId file_id0; 282 FileId file_id0;
288 FileId file_id1; 283 FileId file_id1;
289 FileId file_id2; 284 FileId file_id2;
290 base::FilePath::StringType name0 = FILE_PATH_LITERAL("foo"); 285 base::FilePath::StringType name0 = FILE_PATH_LITERAL("foo");
291 base::FilePath::StringType name1 = FILE_PATH_LITERAL("bar"); 286 base::FilePath::StringType name1 = FILE_PATH_LITERAL("bar");
292 base::FilePath::StringType name2 = FILE_PATH_LITERAL("dog"); 287 base::FilePath::StringType name2 = FILE_PATH_LITERAL("dog");
293 288
294 info.parent_id = 0; 289 info.parent_id = 0;
295 info.name = name0; 290 info.name = name0;
296 EXPECT_EQ(base::PLATFORM_FILE_OK, db()->AddFileInfo(info, &file_id0)); 291 EXPECT_EQ(base::File::FILE_OK, db()->AddFileInfo(info, &file_id0));
297 info.parent_id = file_id0; 292 info.parent_id = file_id0;
298 info.name = name1; 293 info.name = name1;
299 EXPECT_EQ(base::PLATFORM_FILE_OK, db()->AddFileInfo(info, &file_id1)); 294 EXPECT_EQ(base::File::FILE_OK, db()->AddFileInfo(info, &file_id1));
300 EXPECT_NE(file_id0, file_id1); 295 EXPECT_NE(file_id0, file_id1);
301 info.parent_id = file_id1; 296 info.parent_id = file_id1;
302 info.name = name2; 297 info.name = name2;
303 EXPECT_EQ(base::PLATFORM_FILE_OK, db()->AddFileInfo(info, &file_id2)); 298 EXPECT_EQ(base::File::FILE_OK, db()->AddFileInfo(info, &file_id2));
304 EXPECT_NE(file_id0, file_id2); 299 EXPECT_NE(file_id0, file_id2);
305 EXPECT_NE(file_id1, file_id2); 300 EXPECT_NE(file_id1, file_id2);
306 301
307 FileId check_file_id; 302 FileId check_file_id;
308 base::FilePath path = base::FilePath(name0); 303 base::FilePath path = base::FilePath(name0);
309 EXPECT_TRUE(db()->GetFileWithPath(path, &check_file_id)); 304 EXPECT_TRUE(db()->GetFileWithPath(path, &check_file_id));
310 EXPECT_EQ(file_id0, check_file_id); 305 EXPECT_EQ(file_id0, check_file_id);
311 306
312 path = path.Append(name1); 307 path = path.Append(name1);
313 EXPECT_TRUE(db()->GetFileWithPath(path, &check_file_id)); 308 EXPECT_TRUE(db()->GetFileWithPath(path, &check_file_id));
314 EXPECT_EQ(file_id1, check_file_id); 309 EXPECT_EQ(file_id1, check_file_id);
315 310
316 path = path.Append(name2); 311 path = path.Append(name2);
317 EXPECT_TRUE(db()->GetFileWithPath(path, &check_file_id)); 312 EXPECT_TRUE(db()->GetFileWithPath(path, &check_file_id));
318 EXPECT_EQ(file_id2, check_file_id); 313 EXPECT_EQ(file_id2, check_file_id);
319 } 314 }
320 315
321 TEST_F(SandboxDirectoryDatabaseTest, TestListChildren) { 316 TEST_F(SandboxDirectoryDatabaseTest, TestListChildren) {
322 // No children in the root. 317 // No children in the root.
323 std::vector<FileId> children; 318 std::vector<FileId> children;
324 EXPECT_TRUE(db()->ListChildren(0, &children)); 319 EXPECT_TRUE(db()->ListChildren(0, &children));
325 EXPECT_TRUE(children.empty()); 320 EXPECT_TRUE(children.empty());
326 321
327 // One child in the root. 322 // One child in the root.
328 FileId file_id0; 323 FileId file_id0;
329 FileInfo info; 324 FileInfo info;
330 info.parent_id = 0; 325 info.parent_id = 0;
331 info.name = FILE_PATH_LITERAL("foo"); 326 info.name = FILE_PATH_LITERAL("foo");
332 EXPECT_EQ(base::PLATFORM_FILE_OK, db()->AddFileInfo(info, &file_id0)); 327 EXPECT_EQ(base::File::FILE_OK, db()->AddFileInfo(info, &file_id0));
333 EXPECT_TRUE(db()->ListChildren(0, &children)); 328 EXPECT_TRUE(db()->ListChildren(0, &children));
334 EXPECT_EQ(children.size(), 1UL); 329 EXPECT_EQ(children.size(), 1UL);
335 EXPECT_EQ(children[0], file_id0); 330 EXPECT_EQ(children[0], file_id0);
336 331
337 // Two children in the root. 332 // Two children in the root.
338 FileId file_id1; 333 FileId file_id1;
339 info.name = FILE_PATH_LITERAL("bar"); 334 info.name = FILE_PATH_LITERAL("bar");
340 EXPECT_EQ(base::PLATFORM_FILE_OK, db()->AddFileInfo(info, &file_id1)); 335 EXPECT_EQ(base::File::FILE_OK, db()->AddFileInfo(info, &file_id1));
341 EXPECT_TRUE(db()->ListChildren(0, &children)); 336 EXPECT_TRUE(db()->ListChildren(0, &children));
342 EXPECT_EQ(2UL, children.size()); 337 EXPECT_EQ(2UL, children.size());
343 if (children[0] == file_id0) { 338 if (children[0] == file_id0) {
344 EXPECT_EQ(children[1], file_id1); 339 EXPECT_EQ(children[1], file_id1);
345 } else { 340 } else {
346 EXPECT_EQ(children[1], file_id0); 341 EXPECT_EQ(children[1], file_id0);
347 EXPECT_EQ(children[0], file_id1); 342 EXPECT_EQ(children[0], file_id1);
348 } 343 }
349 344
350 // No children in a subdirectory. 345 // No children in a subdirectory.
351 EXPECT_TRUE(db()->ListChildren(file_id0, &children)); 346 EXPECT_TRUE(db()->ListChildren(file_id0, &children));
352 EXPECT_TRUE(children.empty()); 347 EXPECT_TRUE(children.empty());
353 348
354 // One child in a subdirectory. 349 // One child in a subdirectory.
355 info.parent_id = file_id0; 350 info.parent_id = file_id0;
356 info.name = FILE_PATH_LITERAL("foo"); 351 info.name = FILE_PATH_LITERAL("foo");
357 FileId file_id2; 352 FileId file_id2;
358 FileId file_id3; 353 FileId file_id3;
359 EXPECT_EQ(base::PLATFORM_FILE_OK, db()->AddFileInfo(info, &file_id2)); 354 EXPECT_EQ(base::File::FILE_OK, db()->AddFileInfo(info, &file_id2));
360 EXPECT_TRUE(db()->ListChildren(file_id0, &children)); 355 EXPECT_TRUE(db()->ListChildren(file_id0, &children));
361 EXPECT_EQ(1UL, children.size()); 356 EXPECT_EQ(1UL, children.size());
362 EXPECT_EQ(children[0], file_id2); 357 EXPECT_EQ(children[0], file_id2);
363 358
364 // Two children in a subdirectory. 359 // Two children in a subdirectory.
365 info.name = FILE_PATH_LITERAL("bar"); 360 info.name = FILE_PATH_LITERAL("bar");
366 EXPECT_EQ(base::PLATFORM_FILE_OK, db()->AddFileInfo(info, &file_id3)); 361 EXPECT_EQ(base::File::FILE_OK, db()->AddFileInfo(info, &file_id3));
367 EXPECT_TRUE(db()->ListChildren(file_id0, &children)); 362 EXPECT_TRUE(db()->ListChildren(file_id0, &children));
368 EXPECT_EQ(2UL, children.size()); 363 EXPECT_EQ(2UL, children.size());
369 if (children[0] == file_id2) { 364 if (children[0] == file_id2) {
370 EXPECT_EQ(children[1], file_id3); 365 EXPECT_EQ(children[1], file_id3);
371 } else { 366 } else {
372 EXPECT_EQ(children[1], file_id2); 367 EXPECT_EQ(children[1], file_id2);
373 EXPECT_EQ(children[0], file_id3); 368 EXPECT_EQ(children[0], file_id3);
374 } 369 }
375 } 370 }
376 371
377 TEST_F(SandboxDirectoryDatabaseTest, TestUpdateModificationTime) { 372 TEST_F(SandboxDirectoryDatabaseTest, TestUpdateModificationTime) {
378 FileInfo info0; 373 FileInfo info0;
379 FileId file_id; 374 FileId file_id;
380 info0.parent_id = 0; 375 info0.parent_id = 0;
381 info0.name = FILE_PATH_LITERAL("name"); 376 info0.name = FILE_PATH_LITERAL("name");
382 info0.data_path = base::FilePath(FILE_PATH_LITERAL("fake path")); 377 info0.data_path = base::FilePath(FILE_PATH_LITERAL("fake path"));
383 info0.modification_time = base::Time::Now(); 378 info0.modification_time = base::Time::Now();
384 EXPECT_EQ(base::PLATFORM_FILE_OK, db()->AddFileInfo(info0, &file_id)); 379 EXPECT_EQ(base::File::FILE_OK, db()->AddFileInfo(info0, &file_id));
385 FileInfo info1; 380 FileInfo info1;
386 EXPECT_TRUE(db()->GetFileInfo(file_id, &info1)); 381 EXPECT_TRUE(db()->GetFileInfo(file_id, &info1));
387 EXPECT_EQ(info0.name, info1.name); 382 EXPECT_EQ(info0.name, info1.name);
388 EXPECT_EQ(info0.parent_id, info1.parent_id); 383 EXPECT_EQ(info0.parent_id, info1.parent_id);
389 EXPECT_EQ(info0.data_path, info1.data_path); 384 EXPECT_EQ(info0.data_path, info1.data_path);
390 EXPECT_EQ( 385 EXPECT_EQ(
391 floor(info0.modification_time.ToDoubleT()), 386 floor(info0.modification_time.ToDoubleT()),
392 info1.modification_time.ToDoubleT()); 387 info1.modification_time.ToDoubleT());
393 388
394 EXPECT_TRUE(db()->UpdateModificationTime(file_id, base::Time::UnixEpoch())); 389 EXPECT_TRUE(db()->UpdateModificationTime(file_id, base::Time::UnixEpoch()));
(...skipping 10 matching lines...) Expand all
405 } 400 }
406 401
407 TEST_F(SandboxDirectoryDatabaseTest, TestSimpleFileOperations) { 402 TEST_F(SandboxDirectoryDatabaseTest, TestSimpleFileOperations) {
408 FileId file_id = 888; 403 FileId file_id = 888;
409 FileInfo info0; 404 FileInfo info0;
410 EXPECT_FALSE(db()->GetFileInfo(file_id, &info0)); 405 EXPECT_FALSE(db()->GetFileInfo(file_id, &info0));
411 info0.parent_id = 0; 406 info0.parent_id = 0;
412 info0.data_path = base::FilePath(FILE_PATH_LITERAL("foo")); 407 info0.data_path = base::FilePath(FILE_PATH_LITERAL("foo"));
413 info0.name = FILE_PATH_LITERAL("file name"); 408 info0.name = FILE_PATH_LITERAL("file name");
414 info0.modification_time = base::Time::Now(); 409 info0.modification_time = base::Time::Now();
415 EXPECT_EQ(base::PLATFORM_FILE_OK, db()->AddFileInfo(info0, &file_id)); 410 EXPECT_EQ(base::File::FILE_OK, db()->AddFileInfo(info0, &file_id));
416 FileInfo info1; 411 FileInfo info1;
417 EXPECT_TRUE(db()->GetFileInfo(file_id, &info1)); 412 EXPECT_TRUE(db()->GetFileInfo(file_id, &info1));
418 EXPECT_EQ(info0.parent_id, info1.parent_id); 413 EXPECT_EQ(info0.parent_id, info1.parent_id);
419 EXPECT_EQ(info0.data_path, info1.data_path); 414 EXPECT_EQ(info0.data_path, info1.data_path);
420 EXPECT_EQ(info0.name, info1.name); 415 EXPECT_EQ(info0.name, info1.name);
421 EXPECT_EQ( 416 EXPECT_EQ(
422 floor(info0.modification_time.ToDoubleT()), 417 floor(info0.modification_time.ToDoubleT()),
423 info1.modification_time.ToDoubleT()); 418 info1.modification_time.ToDoubleT());
424 } 419 }
425 420
426 TEST_F(SandboxDirectoryDatabaseTest, TestOverwritingMoveFileSrcDirectory) { 421 TEST_F(SandboxDirectoryDatabaseTest, TestOverwritingMoveFileSrcDirectory) {
427 FileId directory_id; 422 FileId directory_id;
428 FileInfo info0; 423 FileInfo info0;
429 info0.parent_id = 0; 424 info0.parent_id = 0;
430 info0.name = FILE_PATH_LITERAL("directory"); 425 info0.name = FILE_PATH_LITERAL("directory");
431 info0.modification_time = base::Time::Now(); 426 info0.modification_time = base::Time::Now();
432 EXPECT_EQ(base::PLATFORM_FILE_OK, db()->AddFileInfo(info0, &directory_id)); 427 EXPECT_EQ(base::File::FILE_OK, db()->AddFileInfo(info0, &directory_id));
433 428
434 FileId file_id; 429 FileId file_id;
435 FileInfo info1; 430 FileInfo info1;
436 info1.parent_id = 0; 431 info1.parent_id = 0;
437 info1.data_path = base::FilePath(FILE_PATH_LITERAL("bar")); 432 info1.data_path = base::FilePath(FILE_PATH_LITERAL("bar"));
438 info1.name = FILE_PATH_LITERAL("file"); 433 info1.name = FILE_PATH_LITERAL("file");
439 info1.modification_time = base::Time::UnixEpoch(); 434 info1.modification_time = base::Time::UnixEpoch();
440 EXPECT_EQ(base::PLATFORM_FILE_OK, db()->AddFileInfo(info1, &file_id)); 435 EXPECT_EQ(base::File::FILE_OK, db()->AddFileInfo(info1, &file_id));
441 436
442 EXPECT_FALSE(db()->OverwritingMoveFile(directory_id, file_id)); 437 EXPECT_FALSE(db()->OverwritingMoveFile(directory_id, file_id));
443 } 438 }
444 439
445 TEST_F(SandboxDirectoryDatabaseTest, TestOverwritingMoveFileDestDirectory) { 440 TEST_F(SandboxDirectoryDatabaseTest, TestOverwritingMoveFileDestDirectory) {
446 FileId file_id; 441 FileId file_id;
447 FileInfo info0; 442 FileInfo info0;
448 info0.parent_id = 0; 443 info0.parent_id = 0;
449 info0.name = FILE_PATH_LITERAL("file"); 444 info0.name = FILE_PATH_LITERAL("file");
450 info0.data_path = base::FilePath(FILE_PATH_LITERAL("bar")); 445 info0.data_path = base::FilePath(FILE_PATH_LITERAL("bar"));
451 info0.modification_time = base::Time::Now(); 446 info0.modification_time = base::Time::Now();
452 EXPECT_EQ(base::PLATFORM_FILE_OK, db()->AddFileInfo(info0, &file_id)); 447 EXPECT_EQ(base::File::FILE_OK, db()->AddFileInfo(info0, &file_id));
453 448
454 FileId directory_id; 449 FileId directory_id;
455 FileInfo info1; 450 FileInfo info1;
456 info1.parent_id = 0; 451 info1.parent_id = 0;
457 info1.name = FILE_PATH_LITERAL("directory"); 452 info1.name = FILE_PATH_LITERAL("directory");
458 info1.modification_time = base::Time::UnixEpoch(); 453 info1.modification_time = base::Time::UnixEpoch();
459 EXPECT_EQ(base::PLATFORM_FILE_OK, db()->AddFileInfo(info1, &directory_id)); 454 EXPECT_EQ(base::File::FILE_OK, db()->AddFileInfo(info1, &directory_id));
460 455
461 EXPECT_FALSE(db()->OverwritingMoveFile(file_id, directory_id)); 456 EXPECT_FALSE(db()->OverwritingMoveFile(file_id, directory_id));
462 } 457 }
463 458
464 TEST_F(SandboxDirectoryDatabaseTest, TestOverwritingMoveFileSuccess) { 459 TEST_F(SandboxDirectoryDatabaseTest, TestOverwritingMoveFileSuccess) {
465 FileId file_id0; 460 FileId file_id0;
466 FileInfo info0; 461 FileInfo info0;
467 info0.parent_id = 0; 462 info0.parent_id = 0;
468 info0.data_path = base::FilePath(FILE_PATH_LITERAL("foo")); 463 info0.data_path = base::FilePath(FILE_PATH_LITERAL("foo"));
469 info0.name = FILE_PATH_LITERAL("file name 0"); 464 info0.name = FILE_PATH_LITERAL("file name 0");
470 info0.modification_time = base::Time::Now(); 465 info0.modification_time = base::Time::Now();
471 EXPECT_EQ(base::PLATFORM_FILE_OK, db()->AddFileInfo(info0, &file_id0)); 466 EXPECT_EQ(base::File::FILE_OK, db()->AddFileInfo(info0, &file_id0));
472 467
473 FileInfo dir_info; 468 FileInfo dir_info;
474 FileId dir_id; 469 FileId dir_id;
475 dir_info.parent_id = 0; 470 dir_info.parent_id = 0;
476 dir_info.name = FILE_PATH_LITERAL("directory name"); 471 dir_info.name = FILE_PATH_LITERAL("directory name");
477 EXPECT_EQ(base::PLATFORM_FILE_OK, db()->AddFileInfo(dir_info, &dir_id)); 472 EXPECT_EQ(base::File::FILE_OK, db()->AddFileInfo(dir_info, &dir_id));
478 473
479 FileId file_id1; 474 FileId file_id1;
480 FileInfo info1; 475 FileInfo info1;
481 info1.parent_id = dir_id; 476 info1.parent_id = dir_id;
482 info1.data_path = base::FilePath(FILE_PATH_LITERAL("bar")); 477 info1.data_path = base::FilePath(FILE_PATH_LITERAL("bar"));
483 info1.name = FILE_PATH_LITERAL("file name 1"); 478 info1.name = FILE_PATH_LITERAL("file name 1");
484 info1.modification_time = base::Time::UnixEpoch(); 479 info1.modification_time = base::Time::UnixEpoch();
485 EXPECT_EQ(base::PLATFORM_FILE_OK, db()->AddFileInfo(info1, &file_id1)); 480 EXPECT_EQ(base::File::FILE_OK, db()->AddFileInfo(info1, &file_id1));
486 481
487 EXPECT_TRUE(db()->OverwritingMoveFile(file_id0, file_id1)); 482 EXPECT_TRUE(db()->OverwritingMoveFile(file_id0, file_id1));
488 483
489 FileInfo check_info; 484 FileInfo check_info;
490 FileId check_id; 485 FileId check_id;
491 486
492 EXPECT_FALSE(db()->GetFileWithPath(base::FilePath(info0.name), &check_id)); 487 EXPECT_FALSE(db()->GetFileWithPath(base::FilePath(info0.name), &check_id));
493 EXPECT_TRUE(db()->GetFileWithPath( 488 EXPECT_TRUE(db()->GetFileWithPath(
494 base::FilePath(dir_info.name).Append(info1.name), &check_id)); 489 base::FilePath(dir_info.name).Append(info1.name), &check_id));
495 EXPECT_TRUE(db()->GetFileInfo(check_id, &check_info)); 490 EXPECT_TRUE(db()->GetFileInfo(check_id, &check_info));
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
550 EXPECT_TRUE(db()->IsFileSystemConsistent()); 545 EXPECT_TRUE(db()->IsFileSystemConsistent());
551 ASSERT_TRUE(base::DeleteFile(path().Append(kBackingFileName), false)); 546 ASSERT_TRUE(base::DeleteFile(path().Append(kBackingFileName), false));
552 EXPECT_TRUE(db()->IsFileSystemConsistent()); 547 EXPECT_TRUE(db()->IsFileSystemConsistent());
553 } 548 }
554 549
555 TEST_F(SandboxDirectoryDatabaseTest, TestConsistencyCheck_OrphanFile) { 550 TEST_F(SandboxDirectoryDatabaseTest, TestConsistencyCheck_OrphanFile) {
556 CreateFile(0, FPL("foo"), FPL("hoge"), NULL); 551 CreateFile(0, FPL("foo"), FPL("hoge"), NULL);
557 552
558 EXPECT_TRUE(db()->IsFileSystemConsistent()); 553 EXPECT_TRUE(db()->IsFileSystemConsistent());
559 554
560 bool created = false; 555 base::File file(path().Append(FPL("Orphan File")),
561 base::PlatformFileError error = base::PLATFORM_FILE_ERROR_FAILED; 556 base::File::FLAG_CREATE | base::File::FLAG_WRITE);
562 base::PlatformFile file = base::CreatePlatformFile( 557 ASSERT_TRUE(file.IsValid());
563 path().Append(FPL("Orphan File")), 558 ASSERT_TRUE(file.created());
564 base::PLATFORM_FILE_CREATE | base::PLATFORM_FILE_WRITE, 559 file.Close();
565 &created, &error);
566 ASSERT_EQ(base::PLATFORM_FILE_OK, error);
567 ASSERT_TRUE(created);
568 ASSERT_TRUE(base::ClosePlatformFile(file));
569 560
570 EXPECT_TRUE(db()->IsFileSystemConsistent()); 561 EXPECT_TRUE(db()->IsFileSystemConsistent());
571 } 562 }
572 563
573 TEST_F(SandboxDirectoryDatabaseTest, TestConsistencyCheck_RootLoop) { 564 TEST_F(SandboxDirectoryDatabaseTest, TestConsistencyCheck_RootLoop) {
574 EXPECT_TRUE(db()->IsFileSystemConsistent()); 565 EXPECT_TRUE(db()->IsFileSystemConsistent());
575 MakeHierarchyLink(0, 0, base::FilePath::StringType()); 566 MakeHierarchyLink(0, 0, base::FilePath::StringType());
576 EXPECT_FALSE(db()->IsFileSystemConsistent()); 567 EXPECT_FALSE(db()->IsFileSystemConsistent());
577 } 568 }
578 569
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
672 EXPECT_FALSE(db()->IsFileSystemConsistent()); 663 EXPECT_FALSE(db()->IsFileSystemConsistent());
673 664
674 FileId file_id; 665 FileId file_id;
675 EXPECT_TRUE(db()->GetChildWithName(0, kFileName, &file_id)); 666 EXPECT_TRUE(db()->GetChildWithName(0, kFileName, &file_id));
676 EXPECT_EQ(file_id_prev, file_id); 667 EXPECT_EQ(file_id_prev, file_id);
677 668
678 EXPECT_TRUE(db()->IsFileSystemConsistent()); 669 EXPECT_TRUE(db()->IsFileSystemConsistent());
679 } 670 }
680 671
681 } // namespace fileapi 672 } // namespace fileapi
OLDNEW
« no previous file with comments | « webkit/browser/fileapi/sandbox_directory_database.cc ('k') | webkit/browser/fileapi/sandbox_file_stream_writer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698