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

Side by Side Diff: base/file_util_unittest.cc

Issue 100573002: Move directory creation functions to base namespace. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years 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
« no previous file with comments | « base/file_util_posix.cc ('k') | base/file_util_win.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "build/build_config.h" 5 #include "build/build_config.h"
6 6
7 #if defined(OS_WIN) 7 #if defined(OS_WIN)
8 #include <windows.h> 8 #include <windows.h>
9 #include <shellapi.h> 9 #include <shellapi.h>
10 #include <shlobj.h> 10 #include <shlobj.h>
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 TEST_F(FileUtilTest, FileAndDirectorySize) { 247 TEST_F(FileUtilTest, FileAndDirectorySize) {
248 // Create three files of 20, 30 and 3 chars (utf8). ComputeDirectorySize 248 // Create three files of 20, 30 and 3 chars (utf8). ComputeDirectorySize
249 // should return 53 bytes. 249 // should return 53 bytes.
250 FilePath file_01 = temp_dir_.path().Append(FPL("The file 01.txt")); 250 FilePath file_01 = temp_dir_.path().Append(FPL("The file 01.txt"));
251 CreateTextFile(file_01, L"12345678901234567890"); 251 CreateTextFile(file_01, L"12345678901234567890");
252 int64 size_f1 = 0; 252 int64 size_f1 = 0;
253 ASSERT_TRUE(file_util::GetFileSize(file_01, &size_f1)); 253 ASSERT_TRUE(file_util::GetFileSize(file_01, &size_f1));
254 EXPECT_EQ(20ll, size_f1); 254 EXPECT_EQ(20ll, size_f1);
255 255
256 FilePath subdir_path = temp_dir_.path().Append(FPL("Level2")); 256 FilePath subdir_path = temp_dir_.path().Append(FPL("Level2"));
257 file_util::CreateDirectory(subdir_path); 257 base::CreateDirectory(subdir_path);
258 258
259 FilePath file_02 = subdir_path.Append(FPL("The file 02.txt")); 259 FilePath file_02 = subdir_path.Append(FPL("The file 02.txt"));
260 CreateTextFile(file_02, L"123456789012345678901234567890"); 260 CreateTextFile(file_02, L"123456789012345678901234567890");
261 int64 size_f2 = 0; 261 int64 size_f2 = 0;
262 ASSERT_TRUE(file_util::GetFileSize(file_02, &size_f2)); 262 ASSERT_TRUE(file_util::GetFileSize(file_02, &size_f2));
263 EXPECT_EQ(30ll, size_f2); 263 EXPECT_EQ(30ll, size_f2);
264 264
265 FilePath subsubdir_path = subdir_path.Append(FPL("Level3")); 265 FilePath subsubdir_path = subdir_path.Append(FPL("Level3"));
266 file_util::CreateDirectory(subsubdir_path); 266 base::CreateDirectory(subsubdir_path);
267 267
268 FilePath file_03 = subsubdir_path.Append(FPL("The file 03.txt")); 268 FilePath file_03 = subsubdir_path.Append(FPL("The file 03.txt"));
269 CreateTextFile(file_03, L"123"); 269 CreateTextFile(file_03, L"123");
270 270
271 int64 computed_size = ComputeDirectorySize(temp_dir_.path()); 271 int64 computed_size = ComputeDirectorySize(temp_dir_.path());
272 EXPECT_EQ(size_f1 + size_f2 + 3, computed_size); 272 EXPECT_EQ(size_f1 + size_f2 + 3, computed_size);
273 } 273 }
274 274
275 TEST_F(FileUtilTest, NormalizeFilePathBasic) { 275 TEST_F(FileUtilTest, NormalizeFilePathBasic) {
276 // Create a directory under the test dir. Because we create it, 276 // Create a directory under the test dir. Because we create it,
277 // we know it is not a link. 277 // we know it is not a link.
278 FilePath file_a_path = temp_dir_.path().Append(FPL("file_a")); 278 FilePath file_a_path = temp_dir_.path().Append(FPL("file_a"));
279 FilePath dir_path = temp_dir_.path().Append(FPL("dir")); 279 FilePath dir_path = temp_dir_.path().Append(FPL("dir"));
280 FilePath file_b_path = dir_path.Append(FPL("file_b")); 280 FilePath file_b_path = dir_path.Append(FPL("file_b"));
281 file_util::CreateDirectory(dir_path); 281 base::CreateDirectory(dir_path);
282 282
283 FilePath normalized_file_a_path, normalized_file_b_path; 283 FilePath normalized_file_a_path, normalized_file_b_path;
284 ASSERT_FALSE(PathExists(file_a_path)); 284 ASSERT_FALSE(PathExists(file_a_path));
285 ASSERT_FALSE(file_util::NormalizeFilePath(file_a_path, 285 ASSERT_FALSE(file_util::NormalizeFilePath(file_a_path,
286 &normalized_file_a_path)) 286 &normalized_file_a_path))
287 << "NormalizeFilePath() should fail on nonexistent paths."; 287 << "NormalizeFilePath() should fail on nonexistent paths.";
288 288
289 CreateTextFile(file_a_path, bogus_content); 289 CreateTextFile(file_a_path, bogus_content);
290 ASSERT_TRUE(PathExists(file_a_path)); 290 ASSERT_TRUE(PathExists(file_a_path));
291 ASSERT_TRUE(file_util::NormalizeFilePath(file_a_path, 291 ASSERT_TRUE(file_util::NormalizeFilePath(file_a_path,
(...skipping 22 matching lines...) Expand all
314 // | |-> file.txt 314 // | |-> file.txt
315 // | |-> long_name___... (Very long name.) 315 // | |-> long_name___... (Very long name.)
316 // | |-> sub_long 316 // | |-> sub_long
317 // | |-> deep.txt 317 // | |-> deep.txt
318 // |-> base_b 318 // |-> base_b
319 // |-> to_sub_a (reparse point to temp_dir\base_a\sub_a) 319 // |-> to_sub_a (reparse point to temp_dir\base_a\sub_a)
320 // |-> to_base_b (reparse point to temp_dir\base_b) 320 // |-> to_base_b (reparse point to temp_dir\base_b)
321 // |-> to_sub_long (reparse point to temp_dir\sub_a\long_name_\sub_long) 321 // |-> to_sub_long (reparse point to temp_dir\sub_a\long_name_\sub_long)
322 322
323 FilePath base_a = temp_dir_.path().Append(FPL("base_a")); 323 FilePath base_a = temp_dir_.path().Append(FPL("base_a"));
324 ASSERT_TRUE(file_util::CreateDirectory(base_a)); 324 ASSERT_TRUE(base::CreateDirectory(base_a));
325 325
326 FilePath sub_a = base_a.Append(FPL("sub_a")); 326 FilePath sub_a = base_a.Append(FPL("sub_a"));
327 ASSERT_TRUE(file_util::CreateDirectory(sub_a)); 327 ASSERT_TRUE(base::CreateDirectory(sub_a));
328 328
329 FilePath file_txt = sub_a.Append(FPL("file.txt")); 329 FilePath file_txt = sub_a.Append(FPL("file.txt"));
330 CreateTextFile(file_txt, bogus_content); 330 CreateTextFile(file_txt, bogus_content);
331 331
332 // Want a directory whose name is long enough to make the path to the file 332 // Want a directory whose name is long enough to make the path to the file
333 // inside just under MAX_PATH chars. This will be used to test that when 333 // inside just under MAX_PATH chars. This will be used to test that when
334 // a junction expands to a path over MAX_PATH chars in length, 334 // a junction expands to a path over MAX_PATH chars in length,
335 // NormalizeFilePath() fails without crashing. 335 // NormalizeFilePath() fails without crashing.
336 FilePath sub_long_rel(FPL("sub_long")); 336 FilePath sub_long_rel(FPL("sub_long"));
337 FilePath deep_txt(FPL("deep.txt")); 337 FilePath deep_txt(FPL("deep.txt"));
338 338
339 int target_length = MAX_PATH; 339 int target_length = MAX_PATH;
340 target_length -= (sub_a.value().length() + 1); // +1 for the sepperator '\'. 340 target_length -= (sub_a.value().length() + 1); // +1 for the sepperator '\'.
341 target_length -= (sub_long_rel.Append(deep_txt).value().length() + 1); 341 target_length -= (sub_long_rel.Append(deep_txt).value().length() + 1);
342 // Without making the path a bit shorter, CreateDirectory() fails. 342 // Without making the path a bit shorter, CreateDirectory() fails.
343 // the resulting path is still long enough to hit the failing case in 343 // the resulting path is still long enough to hit the failing case in
344 // NormalizePath(). 344 // NormalizePath().
345 const int kCreateDirLimit = 4; 345 const int kCreateDirLimit = 4;
346 target_length -= kCreateDirLimit; 346 target_length -= kCreateDirLimit;
347 FilePath::StringType long_name_str = FPL("long_name_"); 347 FilePath::StringType long_name_str = FPL("long_name_");
348 long_name_str.resize(target_length, '_'); 348 long_name_str.resize(target_length, '_');
349 349
350 FilePath long_name = sub_a.Append(FilePath(long_name_str)); 350 FilePath long_name = sub_a.Append(FilePath(long_name_str));
351 FilePath deep_file = long_name.Append(sub_long_rel).Append(deep_txt); 351 FilePath deep_file = long_name.Append(sub_long_rel).Append(deep_txt);
352 ASSERT_EQ(MAX_PATH - kCreateDirLimit, deep_file.value().length()); 352 ASSERT_EQ(MAX_PATH - kCreateDirLimit, deep_file.value().length());
353 353
354 FilePath sub_long = deep_file.DirName(); 354 FilePath sub_long = deep_file.DirName();
355 ASSERT_TRUE(file_util::CreateDirectory(sub_long)); 355 ASSERT_TRUE(base::CreateDirectory(sub_long));
356 CreateTextFile(deep_file, bogus_content); 356 CreateTextFile(deep_file, bogus_content);
357 357
358 FilePath base_b = temp_dir_.path().Append(FPL("base_b")); 358 FilePath base_b = temp_dir_.path().Append(FPL("base_b"));
359 ASSERT_TRUE(file_util::CreateDirectory(base_b)); 359 ASSERT_TRUE(base::CreateDirectory(base_b));
360 360
361 FilePath to_sub_a = base_b.Append(FPL("to_sub_a")); 361 FilePath to_sub_a = base_b.Append(FPL("to_sub_a"));
362 ASSERT_TRUE(file_util::CreateDirectory(to_sub_a)); 362 ASSERT_TRUE(base::CreateDirectory(to_sub_a));
363 FilePath normalized_path; 363 FilePath normalized_path;
364 { 364 {
365 ReparsePoint reparse_to_sub_a(to_sub_a, sub_a); 365 ReparsePoint reparse_to_sub_a(to_sub_a, sub_a);
366 ASSERT_TRUE(reparse_to_sub_a.IsValid()); 366 ASSERT_TRUE(reparse_to_sub_a.IsValid());
367 367
368 FilePath to_base_b = base_b.Append(FPL("to_base_b")); 368 FilePath to_base_b = base_b.Append(FPL("to_base_b"));
369 ASSERT_TRUE(file_util::CreateDirectory(to_base_b)); 369 ASSERT_TRUE(base::CreateDirectory(to_base_b));
370 ReparsePoint reparse_to_base_b(to_base_b, base_b); 370 ReparsePoint reparse_to_base_b(to_base_b, base_b);
371 ASSERT_TRUE(reparse_to_base_b.IsValid()); 371 ASSERT_TRUE(reparse_to_base_b.IsValid());
372 372
373 FilePath to_sub_long = base_b.Append(FPL("to_sub_long")); 373 FilePath to_sub_long = base_b.Append(FPL("to_sub_long"));
374 ASSERT_TRUE(file_util::CreateDirectory(to_sub_long)); 374 ASSERT_TRUE(base::CreateDirectory(to_sub_long));
375 ReparsePoint reparse_to_sub_long(to_sub_long, sub_long); 375 ReparsePoint reparse_to_sub_long(to_sub_long, sub_long);
376 ASSERT_TRUE(reparse_to_sub_long.IsValid()); 376 ASSERT_TRUE(reparse_to_sub_long.IsValid());
377 377
378 // Normalize a junction free path: base_a\sub_a\file.txt . 378 // Normalize a junction free path: base_a\sub_a\file.txt .
379 ASSERT_TRUE(file_util::NormalizeFilePath(file_txt, &normalized_path)); 379 ASSERT_TRUE(file_util::NormalizeFilePath(file_txt, &normalized_path));
380 ASSERT_STREQ(file_txt.value().c_str(), normalized_path.value().c_str()); 380 ASSERT_STREQ(file_txt.value().c_str(), normalized_path.value().c_str());
381 381
382 // Check that the path base_b\to_sub_a\file.txt can be normalized to exclude 382 // Check that the path base_b\to_sub_a\file.txt can be normalized to exclude
383 // the junction to_sub_a. 383 // the junction to_sub_a.
384 ASSERT_TRUE(file_util::NormalizeFilePath(to_sub_a.Append(FPL("file.txt")), 384 ASSERT_TRUE(file_util::NormalizeFilePath(to_sub_a.Append(FPL("file.txt")),
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
485 real_device_path_plus_numbers, 485 real_device_path_plus_numbers,
486 &win32_path)); 486 &win32_path));
487 487
488 ASSERT_FALSE(file_util::DevicePathToDriveLetterPath( 488 ASSERT_FALSE(file_util::DevicePathToDriveLetterPath(
489 real_device_path_plus_numbers.Append(kRelativePath), 489 real_device_path_plus_numbers.Append(kRelativePath),
490 &win32_path)); 490 &win32_path));
491 } 491 }
492 492
493 TEST_F(FileUtilTest, GetPlatformFileInfoForDirectory) { 493 TEST_F(FileUtilTest, GetPlatformFileInfoForDirectory) {
494 FilePath empty_dir = temp_dir_.path().Append(FPL("gpfi_test")); 494 FilePath empty_dir = temp_dir_.path().Append(FPL("gpfi_test"));
495 ASSERT_TRUE(file_util::CreateDirectory(empty_dir)); 495 ASSERT_TRUE(base::CreateDirectory(empty_dir));
496 win::ScopedHandle dir( 496 win::ScopedHandle dir(
497 ::CreateFile(empty_dir.value().c_str(), 497 ::CreateFile(empty_dir.value().c_str(),
498 FILE_ALL_ACCESS, 498 FILE_ALL_ACCESS,
499 FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, 499 FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
500 NULL, 500 NULL,
501 OPEN_EXISTING, 501 OPEN_EXISTING,
502 FILE_FLAG_BACKUP_SEMANTICS, // Needed to open a directory. 502 FILE_FLAG_BACKUP_SEMANTICS, // Needed to open a directory.
503 NULL)); 503 NULL));
504 ASSERT_TRUE(dir.IsValid()); 504 ASSERT_TRUE(dir.IsValid());
505 PlatformFileInfo info; 505 PlatformFileInfo info;
506 EXPECT_TRUE(GetPlatformFileInfo(dir.Get(), &info)); 506 EXPECT_TRUE(GetPlatformFileInfo(dir.Get(), &info));
507 EXPECT_TRUE(info.is_directory); 507 EXPECT_TRUE(info.is_directory);
508 EXPECT_FALSE(info.is_symbolic_link); 508 EXPECT_FALSE(info.is_symbolic_link);
509 EXPECT_EQ(0, info.size); 509 EXPECT_EQ(0, info.size);
510 } 510 }
511 511
512 TEST_F(FileUtilTest, CreateTemporaryFileInDirLongPathTest) { 512 TEST_F(FileUtilTest, CreateTemporaryFileInDirLongPathTest) {
513 // Test that CreateTemporaryFileInDir() creates a path and returns a long path 513 // Test that CreateTemporaryFileInDir() creates a path and returns a long path
514 // if it is available. This test requires that: 514 // if it is available. This test requires that:
515 // - the filesystem at |temp_dir_| supports long filenames. 515 // - the filesystem at |temp_dir_| supports long filenames.
516 // - the account has FILE_LIST_DIRECTORY permission for all ancestor 516 // - the account has FILE_LIST_DIRECTORY permission for all ancestor
517 // directories of |temp_dir_|. 517 // directories of |temp_dir_|.
518 const FilePath::CharType kLongDirName[] = FPL("A long path"); 518 const FilePath::CharType kLongDirName[] = FPL("A long path");
519 const FilePath::CharType kTestSubDirName[] = FPL("test"); 519 const FilePath::CharType kTestSubDirName[] = FPL("test");
520 FilePath long_test_dir = temp_dir_.path().Append(kLongDirName); 520 FilePath long_test_dir = temp_dir_.path().Append(kLongDirName);
521 ASSERT_TRUE(file_util::CreateDirectory(long_test_dir)); 521 ASSERT_TRUE(base::CreateDirectory(long_test_dir));
522 522
523 // kLongDirName is not a 8.3 component. So GetShortName() should give us a 523 // kLongDirName is not a 8.3 component. So GetShortName() should give us a
524 // different short name. 524 // different short name.
525 WCHAR path_buffer[MAX_PATH]; 525 WCHAR path_buffer[MAX_PATH];
526 DWORD path_buffer_length = GetShortPathName(long_test_dir.value().c_str(), 526 DWORD path_buffer_length = GetShortPathName(long_test_dir.value().c_str(),
527 path_buffer, MAX_PATH); 527 path_buffer, MAX_PATH);
528 ASSERT_LT(path_buffer_length, DWORD(MAX_PATH)); 528 ASSERT_LT(path_buffer_length, DWORD(MAX_PATH));
529 ASSERT_NE(DWORD(0), path_buffer_length); 529 ASSERT_NE(DWORD(0), path_buffer_length);
530 FilePath short_test_dir(path_buffer); 530 FilePath short_test_dir(path_buffer);
531 ASSERT_STRNE(kLongDirName, short_test_dir.BaseName().value().c_str()); 531 ASSERT_STRNE(kLongDirName, short_test_dir.BaseName().value().c_str());
532 532
533 FilePath temp_file; 533 FilePath temp_file;
534 ASSERT_TRUE(base::CreateTemporaryFileInDir(short_test_dir, &temp_file)); 534 ASSERT_TRUE(base::CreateTemporaryFileInDir(short_test_dir, &temp_file));
535 EXPECT_STREQ(kLongDirName, temp_file.DirName().BaseName().value().c_str()); 535 EXPECT_STREQ(kLongDirName, temp_file.DirName().BaseName().value().c_str());
536 EXPECT_TRUE(PathExists(temp_file)); 536 EXPECT_TRUE(PathExists(temp_file));
537 537
538 // Create a subdirectory of |long_test_dir| and make |long_test_dir| 538 // Create a subdirectory of |long_test_dir| and make |long_test_dir|
539 // unreadable. We should still be able to create a temp file in the 539 // unreadable. We should still be able to create a temp file in the
540 // subdirectory, but we won't be able to determine the long path for it. This 540 // subdirectory, but we won't be able to determine the long path for it. This
541 // mimics the environment that some users run where their user profiles reside 541 // mimics the environment that some users run where their user profiles reside
542 // in a location where the don't have full access to the higher level 542 // in a location where the don't have full access to the higher level
543 // directories. (Note that this assumption is true for NTFS, but not for some 543 // directories. (Note that this assumption is true for NTFS, but not for some
544 // network file systems. E.g. AFS). 544 // network file systems. E.g. AFS).
545 FilePath access_test_dir = long_test_dir.Append(kTestSubDirName); 545 FilePath access_test_dir = long_test_dir.Append(kTestSubDirName);
546 ASSERT_TRUE(file_util::CreateDirectory(access_test_dir)); 546 ASSERT_TRUE(base::CreateDirectory(access_test_dir));
547 file_util::PermissionRestorer long_test_dir_restorer(long_test_dir); 547 file_util::PermissionRestorer long_test_dir_restorer(long_test_dir);
548 ASSERT_TRUE(file_util::MakeFileUnreadable(long_test_dir)); 548 ASSERT_TRUE(file_util::MakeFileUnreadable(long_test_dir));
549 549
550 // Use the short form of the directory to create a temporary filename. 550 // Use the short form of the directory to create a temporary filename.
551 ASSERT_TRUE(base::CreateTemporaryFileInDir( 551 ASSERT_TRUE(base::CreateTemporaryFileInDir(
552 short_test_dir.Append(kTestSubDirName), &temp_file)); 552 short_test_dir.Append(kTestSubDirName), &temp_file));
553 EXPECT_TRUE(PathExists(temp_file)); 553 EXPECT_TRUE(PathExists(temp_file));
554 EXPECT_TRUE(short_test_dir.IsParent(temp_file.DirName())); 554 EXPECT_TRUE(short_test_dir.IsParent(temp_file.DirName()));
555 555
556 // Check that the long path can't be determined for |temp_file|. 556 // Check that the long path can't be determined for |temp_file|.
(...skipping 19 matching lines...) Expand all
576 std::wstring contents = ReadTextFile(link_from); 576 std::wstring contents = ReadTextFile(link_from);
577 EXPECT_EQ(bogus_content, contents); 577 EXPECT_EQ(bogus_content, contents);
578 578
579 FilePath result; 579 FilePath result;
580 ASSERT_TRUE(ReadSymbolicLink(link_from, &result)); 580 ASSERT_TRUE(ReadSymbolicLink(link_from, &result));
581 EXPECT_EQ(link_to.value(), result.value()); 581 EXPECT_EQ(link_to.value(), result.value());
582 582
583 // Link to a directory. 583 // Link to a directory.
584 link_from = temp_dir_.path().Append(FPL("from_dir")); 584 link_from = temp_dir_.path().Append(FPL("from_dir"));
585 link_to = temp_dir_.path().Append(FPL("to_dir")); 585 link_to = temp_dir_.path().Append(FPL("to_dir"));
586 ASSERT_TRUE(file_util::CreateDirectory(link_to)); 586 ASSERT_TRUE(base::CreateDirectory(link_to));
587 ASSERT_TRUE(CreateSymbolicLink(link_to, link_from)) 587 ASSERT_TRUE(CreateSymbolicLink(link_to, link_from))
588 << "Failed to create directory symlink."; 588 << "Failed to create directory symlink.";
589 589
590 // Test failures. 590 // Test failures.
591 EXPECT_FALSE(CreateSymbolicLink(link_to, link_to)); 591 EXPECT_FALSE(CreateSymbolicLink(link_to, link_to));
592 EXPECT_FALSE(ReadSymbolicLink(link_to, &result)); 592 EXPECT_FALSE(ReadSymbolicLink(link_to, &result));
593 FilePath missing = temp_dir_.path().Append(FPL("missing")); 593 FilePath missing = temp_dir_.path().Append(FPL("missing"));
594 EXPECT_FALSE(ReadSymbolicLink(missing, &result)); 594 EXPECT_FALSE(ReadSymbolicLink(missing, &result));
595 } 595 }
596 596
(...skipping 14 matching lines...) Expand all
611 // Check that NormalizeFilePath sees the link. 611 // Check that NormalizeFilePath sees the link.
612 FilePath normalized_path; 612 FilePath normalized_path;
613 ASSERT_TRUE(file_util::NormalizeFilePath(link_from, &normalized_path)); 613 ASSERT_TRUE(file_util::NormalizeFilePath(link_from, &normalized_path));
614 EXPECT_NE(link_from, link_to); 614 EXPECT_NE(link_from, link_to);
615 EXPECT_EQ(link_to.BaseName().value(), normalized_path.BaseName().value()); 615 EXPECT_EQ(link_to.BaseName().value(), normalized_path.BaseName().value());
616 EXPECT_EQ(link_to.BaseName().value(), normalized_path.BaseName().value()); 616 EXPECT_EQ(link_to.BaseName().value(), normalized_path.BaseName().value());
617 617
618 // Link to a directory. 618 // Link to a directory.
619 link_from = temp_dir_.path().Append(FPL("from_dir")); 619 link_from = temp_dir_.path().Append(FPL("from_dir"));
620 link_to = temp_dir_.path().Append(FPL("to_dir")); 620 link_to = temp_dir_.path().Append(FPL("to_dir"));
621 ASSERT_TRUE(file_util::CreateDirectory(link_to)); 621 ASSERT_TRUE(base::CreateDirectory(link_to));
622 ASSERT_TRUE(CreateSymbolicLink(link_to, link_from)) 622 ASSERT_TRUE(CreateSymbolicLink(link_to, link_from))
623 << "Failed to create directory symlink."; 623 << "Failed to create directory symlink.";
624 624
625 EXPECT_FALSE(file_util::NormalizeFilePath(link_from, &normalized_path)) 625 EXPECT_FALSE(file_util::NormalizeFilePath(link_from, &normalized_path))
626 << "Links to directories should return false."; 626 << "Links to directories should return false.";
627 627
628 // Test that a loop in the links causes NormalizeFilePath() to return false. 628 // Test that a loop in the links causes NormalizeFilePath() to return false.
629 link_from = temp_dir_.path().Append(FPL("link_a")); 629 link_from = temp_dir_.path().Append(FPL("link_a"));
630 link_to = temp_dir_.path().Append(FPL("link_b")); 630 link_to = temp_dir_.path().Append(FPL("link_b"));
631 ASSERT_TRUE(CreateSymbolicLink(link_to, link_from)) 631 ASSERT_TRUE(CreateSymbolicLink(link_to, link_from))
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
790 790
791 // Delete the file. 791 // Delete the file.
792 EXPECT_TRUE(DeleteFile(file_name, false)); 792 EXPECT_TRUE(DeleteFile(file_name, false));
793 EXPECT_FALSE(PathExists(file_name)); 793 EXPECT_FALSE(PathExists(file_name));
794 } 794 }
795 795
796 TEST_F(FileUtilTest, ChangeDirectoryPermissionsAndEnumerate) { 796 TEST_F(FileUtilTest, ChangeDirectoryPermissionsAndEnumerate) {
797 // Create a directory path. 797 // Create a directory path.
798 FilePath subdir_path = 798 FilePath subdir_path =
799 temp_dir_.path().Append(FPL("PermissionTest1")); 799 temp_dir_.path().Append(FPL("PermissionTest1"));
800 file_util::CreateDirectory(subdir_path); 800 base::CreateDirectory(subdir_path);
801 ASSERT_TRUE(PathExists(subdir_path)); 801 ASSERT_TRUE(PathExists(subdir_path));
802 802
803 // Create a dummy file to enumerate. 803 // Create a dummy file to enumerate.
804 FilePath file_name = subdir_path.Append(FPL("Test Readable File.txt")); 804 FilePath file_name = subdir_path.Append(FPL("Test Readable File.txt"));
805 EXPECT_FALSE(PathExists(file_name)); 805 EXPECT_FALSE(PathExists(file_name));
806 const std::string kData("hello"); 806 const std::string kData("hello");
807 EXPECT_EQ(static_cast<int>(kData.length()), 807 EXPECT_EQ(static_cast<int>(kData.length()),
808 file_util::WriteFile(file_name, kData.data(), kData.length())); 808 file_util::WriteFile(file_name, kData.data(), kData.length()));
809 EXPECT_TRUE(PathExists(file_name)); 809 EXPECT_TRUE(PathExists(file_name));
810 810
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
847 // Tests that the Delete function works for wild cards, especially 847 // Tests that the Delete function works for wild cards, especially
848 // with the recursion flag. Also coincidentally tests PathExists. 848 // with the recursion flag. Also coincidentally tests PathExists.
849 // TODO(erikkay): see if anyone's actually using this feature of the API 849 // TODO(erikkay): see if anyone's actually using this feature of the API
850 TEST_F(FileUtilTest, DeleteWildCard) { 850 TEST_F(FileUtilTest, DeleteWildCard) {
851 // Create a file and a directory 851 // Create a file and a directory
852 FilePath file_name = temp_dir_.path().Append(FPL("Test DeleteWildCard.txt")); 852 FilePath file_name = temp_dir_.path().Append(FPL("Test DeleteWildCard.txt"));
853 CreateTextFile(file_name, bogus_content); 853 CreateTextFile(file_name, bogus_content);
854 ASSERT_TRUE(PathExists(file_name)); 854 ASSERT_TRUE(PathExists(file_name));
855 855
856 FilePath subdir_path = temp_dir_.path().Append(FPL("DeleteWildCardDir")); 856 FilePath subdir_path = temp_dir_.path().Append(FPL("DeleteWildCardDir"));
857 file_util::CreateDirectory(subdir_path); 857 base::CreateDirectory(subdir_path);
858 ASSERT_TRUE(PathExists(subdir_path)); 858 ASSERT_TRUE(PathExists(subdir_path));
859 859
860 // Create the wildcard path 860 // Create the wildcard path
861 FilePath directory_contents = temp_dir_.path(); 861 FilePath directory_contents = temp_dir_.path();
862 directory_contents = directory_contents.Append(FPL("*")); 862 directory_contents = directory_contents.Append(FPL("*"));
863 863
864 // Delete non-recursively and check that only the file is deleted 864 // Delete non-recursively and check that only the file is deleted
865 EXPECT_TRUE(DeleteFile(directory_contents, false)); 865 EXPECT_TRUE(DeleteFile(directory_contents, false));
866 EXPECT_FALSE(PathExists(file_name)); 866 EXPECT_FALSE(PathExists(file_name));
867 EXPECT_TRUE(PathExists(subdir_path)); 867 EXPECT_TRUE(PathExists(subdir_path));
868 868
869 // Delete recursively and make sure all contents are deleted 869 // Delete recursively and make sure all contents are deleted
870 EXPECT_TRUE(DeleteFile(directory_contents, true)); 870 EXPECT_TRUE(DeleteFile(directory_contents, true));
871 EXPECT_FALSE(PathExists(file_name)); 871 EXPECT_FALSE(PathExists(file_name));
872 EXPECT_FALSE(PathExists(subdir_path)); 872 EXPECT_FALSE(PathExists(subdir_path));
873 } 873 }
874 874
875 // TODO(erikkay): see if anyone's actually using this feature of the API 875 // TODO(erikkay): see if anyone's actually using this feature of the API
876 TEST_F(FileUtilTest, DeleteNonExistantWildCard) { 876 TEST_F(FileUtilTest, DeleteNonExistantWildCard) {
877 // Create a file and a directory 877 // Create a file and a directory
878 FilePath subdir_path = 878 FilePath subdir_path =
879 temp_dir_.path().Append(FPL("DeleteNonExistantWildCard")); 879 temp_dir_.path().Append(FPL("DeleteNonExistantWildCard"));
880 file_util::CreateDirectory(subdir_path); 880 base::CreateDirectory(subdir_path);
881 ASSERT_TRUE(PathExists(subdir_path)); 881 ASSERT_TRUE(PathExists(subdir_path));
882 882
883 // Create the wildcard path 883 // Create the wildcard path
884 FilePath directory_contents = subdir_path; 884 FilePath directory_contents = subdir_path;
885 directory_contents = directory_contents.Append(FPL("*")); 885 directory_contents = directory_contents.Append(FPL("*"));
886 886
887 // Delete non-recursively and check nothing got deleted 887 // Delete non-recursively and check nothing got deleted
888 EXPECT_TRUE(DeleteFile(directory_contents, false)); 888 EXPECT_TRUE(DeleteFile(directory_contents, false));
889 EXPECT_TRUE(PathExists(subdir_path)); 889 EXPECT_TRUE(PathExists(subdir_path));
890 890
891 // Delete recursively and check nothing got deleted 891 // Delete recursively and check nothing got deleted
892 EXPECT_TRUE(DeleteFile(directory_contents, true)); 892 EXPECT_TRUE(DeleteFile(directory_contents, true));
893 EXPECT_TRUE(PathExists(subdir_path)); 893 EXPECT_TRUE(PathExists(subdir_path));
894 } 894 }
895 #endif 895 #endif
896 896
897 // Tests non-recursive Delete() for a directory. 897 // Tests non-recursive Delete() for a directory.
898 TEST_F(FileUtilTest, DeleteDirNonRecursive) { 898 TEST_F(FileUtilTest, DeleteDirNonRecursive) {
899 // Create a subdirectory and put a file and two directories inside. 899 // Create a subdirectory and put a file and two directories inside.
900 FilePath test_subdir = temp_dir_.path().Append(FPL("DeleteDirNonRecursive")); 900 FilePath test_subdir = temp_dir_.path().Append(FPL("DeleteDirNonRecursive"));
901 file_util::CreateDirectory(test_subdir); 901 base::CreateDirectory(test_subdir);
902 ASSERT_TRUE(PathExists(test_subdir)); 902 ASSERT_TRUE(PathExists(test_subdir));
903 903
904 FilePath file_name = test_subdir.Append(FPL("Test DeleteDir.txt")); 904 FilePath file_name = test_subdir.Append(FPL("Test DeleteDir.txt"));
905 CreateTextFile(file_name, bogus_content); 905 CreateTextFile(file_name, bogus_content);
906 ASSERT_TRUE(PathExists(file_name)); 906 ASSERT_TRUE(PathExists(file_name));
907 907
908 FilePath subdir_path1 = test_subdir.Append(FPL("TestSubDir1")); 908 FilePath subdir_path1 = test_subdir.Append(FPL("TestSubDir1"));
909 file_util::CreateDirectory(subdir_path1); 909 base::CreateDirectory(subdir_path1);
910 ASSERT_TRUE(PathExists(subdir_path1)); 910 ASSERT_TRUE(PathExists(subdir_path1));
911 911
912 FilePath subdir_path2 = test_subdir.Append(FPL("TestSubDir2")); 912 FilePath subdir_path2 = test_subdir.Append(FPL("TestSubDir2"));
913 file_util::CreateDirectory(subdir_path2); 913 base::CreateDirectory(subdir_path2);
914 ASSERT_TRUE(PathExists(subdir_path2)); 914 ASSERT_TRUE(PathExists(subdir_path2));
915 915
916 // Delete non-recursively and check that the empty dir got deleted 916 // Delete non-recursively and check that the empty dir got deleted
917 EXPECT_TRUE(DeleteFile(subdir_path2, false)); 917 EXPECT_TRUE(DeleteFile(subdir_path2, false));
918 EXPECT_FALSE(PathExists(subdir_path2)); 918 EXPECT_FALSE(PathExists(subdir_path2));
919 919
920 // Delete non-recursively and check that nothing got deleted 920 // Delete non-recursively and check that nothing got deleted
921 EXPECT_FALSE(DeleteFile(test_subdir, false)); 921 EXPECT_FALSE(DeleteFile(test_subdir, false));
922 EXPECT_TRUE(PathExists(test_subdir)); 922 EXPECT_TRUE(PathExists(test_subdir));
923 EXPECT_TRUE(PathExists(file_name)); 923 EXPECT_TRUE(PathExists(file_name));
924 EXPECT_TRUE(PathExists(subdir_path1)); 924 EXPECT_TRUE(PathExists(subdir_path1));
925 } 925 }
926 926
927 // Tests recursive Delete() for a directory. 927 // Tests recursive Delete() for a directory.
928 TEST_F(FileUtilTest, DeleteDirRecursive) { 928 TEST_F(FileUtilTest, DeleteDirRecursive) {
929 // Create a subdirectory and put a file and two directories inside. 929 // Create a subdirectory and put a file and two directories inside.
930 FilePath test_subdir = temp_dir_.path().Append(FPL("DeleteDirRecursive")); 930 FilePath test_subdir = temp_dir_.path().Append(FPL("DeleteDirRecursive"));
931 file_util::CreateDirectory(test_subdir); 931 base::CreateDirectory(test_subdir);
932 ASSERT_TRUE(PathExists(test_subdir)); 932 ASSERT_TRUE(PathExists(test_subdir));
933 933
934 FilePath file_name = test_subdir.Append(FPL("Test DeleteDirRecursive.txt")); 934 FilePath file_name = test_subdir.Append(FPL("Test DeleteDirRecursive.txt"));
935 CreateTextFile(file_name, bogus_content); 935 CreateTextFile(file_name, bogus_content);
936 ASSERT_TRUE(PathExists(file_name)); 936 ASSERT_TRUE(PathExists(file_name));
937 937
938 FilePath subdir_path1 = test_subdir.Append(FPL("TestSubDir1")); 938 FilePath subdir_path1 = test_subdir.Append(FPL("TestSubDir1"));
939 file_util::CreateDirectory(subdir_path1); 939 base::CreateDirectory(subdir_path1);
940 ASSERT_TRUE(PathExists(subdir_path1)); 940 ASSERT_TRUE(PathExists(subdir_path1));
941 941
942 FilePath subdir_path2 = test_subdir.Append(FPL("TestSubDir2")); 942 FilePath subdir_path2 = test_subdir.Append(FPL("TestSubDir2"));
943 file_util::CreateDirectory(subdir_path2); 943 base::CreateDirectory(subdir_path2);
944 ASSERT_TRUE(PathExists(subdir_path2)); 944 ASSERT_TRUE(PathExists(subdir_path2));
945 945
946 // Delete recursively and check that the empty dir got deleted 946 // Delete recursively and check that the empty dir got deleted
947 EXPECT_TRUE(DeleteFile(subdir_path2, true)); 947 EXPECT_TRUE(DeleteFile(subdir_path2, true));
948 EXPECT_FALSE(PathExists(subdir_path2)); 948 EXPECT_FALSE(PathExists(subdir_path2));
949 949
950 // Delete recursively and check that everything got deleted 950 // Delete recursively and check that everything got deleted
951 EXPECT_TRUE(DeleteFile(test_subdir, true)); 951 EXPECT_TRUE(DeleteFile(test_subdir, true));
952 EXPECT_FALSE(PathExists(file_name)); 952 EXPECT_FALSE(PathExists(file_name));
953 EXPECT_FALSE(PathExists(subdir_path1)); 953 EXPECT_FALSE(PathExists(subdir_path1));
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
997 TEST_F(FileUtilTest, MoveFileDirExists) { 997 TEST_F(FileUtilTest, MoveFileDirExists) {
998 // Create a file 998 // Create a file
999 FilePath file_name_from = 999 FilePath file_name_from =
1000 temp_dir_.path().Append(FILE_PATH_LITERAL("Move_Test_File.txt")); 1000 temp_dir_.path().Append(FILE_PATH_LITERAL("Move_Test_File.txt"));
1001 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); 1001 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle");
1002 ASSERT_TRUE(PathExists(file_name_from)); 1002 ASSERT_TRUE(PathExists(file_name_from));
1003 1003
1004 // The destination directory 1004 // The destination directory
1005 FilePath dir_name_to = 1005 FilePath dir_name_to =
1006 temp_dir_.path().Append(FILE_PATH_LITERAL("Destination")); 1006 temp_dir_.path().Append(FILE_PATH_LITERAL("Destination"));
1007 file_util::CreateDirectory(dir_name_to); 1007 base::CreateDirectory(dir_name_to);
1008 ASSERT_TRUE(PathExists(dir_name_to)); 1008 ASSERT_TRUE(PathExists(dir_name_to));
1009 1009
1010 EXPECT_FALSE(Move(file_name_from, dir_name_to)); 1010 EXPECT_FALSE(Move(file_name_from, dir_name_to));
1011 } 1011 }
1012 1012
1013 1013
1014 TEST_F(FileUtilTest, MoveNew) { 1014 TEST_F(FileUtilTest, MoveNew) {
1015 // Create a directory 1015 // Create a directory
1016 FilePath dir_name_from = 1016 FilePath dir_name_from =
1017 temp_dir_.path().Append(FILE_PATH_LITERAL("Move_From_Subdir")); 1017 temp_dir_.path().Append(FILE_PATH_LITERAL("Move_From_Subdir"));
1018 file_util::CreateDirectory(dir_name_from); 1018 base::CreateDirectory(dir_name_from);
1019 ASSERT_TRUE(PathExists(dir_name_from)); 1019 ASSERT_TRUE(PathExists(dir_name_from));
1020 1020
1021 // Create a file under the directory 1021 // Create a file under the directory
1022 FilePath txt_file_name(FILE_PATH_LITERAL("Move_Test_File.txt")); 1022 FilePath txt_file_name(FILE_PATH_LITERAL("Move_Test_File.txt"));
1023 FilePath file_name_from = dir_name_from.Append(txt_file_name); 1023 FilePath file_name_from = dir_name_from.Append(txt_file_name);
1024 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); 1024 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle");
1025 ASSERT_TRUE(PathExists(file_name_from)); 1025 ASSERT_TRUE(PathExists(file_name_from));
1026 1026
1027 // Move the directory. 1027 // Move the directory.
1028 FilePath dir_name_to = 1028 FilePath dir_name_to =
(...skipping 20 matching lines...) Expand all
1049 EXPECT_FALSE(PathExists(file_name_to)); 1049 EXPECT_FALSE(PathExists(file_name_to));
1050 EXPECT_TRUE(internal::MoveUnsafe(file_name_from, file_name_to)); 1050 EXPECT_TRUE(internal::MoveUnsafe(file_name_from, file_name_to));
1051 EXPECT_FALSE(PathExists(file_name_from)); 1051 EXPECT_FALSE(PathExists(file_name_from));
1052 EXPECT_TRUE(PathExists(file_name_to)); 1052 EXPECT_TRUE(PathExists(file_name_to));
1053 } 1053 }
1054 1054
1055 TEST_F(FileUtilTest, MoveExist) { 1055 TEST_F(FileUtilTest, MoveExist) {
1056 // Create a directory 1056 // Create a directory
1057 FilePath dir_name_from = 1057 FilePath dir_name_from =
1058 temp_dir_.path().Append(FILE_PATH_LITERAL("Move_From_Subdir")); 1058 temp_dir_.path().Append(FILE_PATH_LITERAL("Move_From_Subdir"));
1059 file_util::CreateDirectory(dir_name_from); 1059 base::CreateDirectory(dir_name_from);
1060 ASSERT_TRUE(PathExists(dir_name_from)); 1060 ASSERT_TRUE(PathExists(dir_name_from));
1061 1061
1062 // Create a file under the directory 1062 // Create a file under the directory
1063 FilePath file_name_from = 1063 FilePath file_name_from =
1064 dir_name_from.Append(FILE_PATH_LITERAL("Move_Test_File.txt")); 1064 dir_name_from.Append(FILE_PATH_LITERAL("Move_Test_File.txt"));
1065 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); 1065 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle");
1066 ASSERT_TRUE(PathExists(file_name_from)); 1066 ASSERT_TRUE(PathExists(file_name_from));
1067 1067
1068 // Move the directory 1068 // Move the directory
1069 FilePath dir_name_exists = 1069 FilePath dir_name_exists =
1070 temp_dir_.path().Append(FILE_PATH_LITERAL("Destination")); 1070 temp_dir_.path().Append(FILE_PATH_LITERAL("Destination"));
1071 1071
1072 FilePath dir_name_to = 1072 FilePath dir_name_to =
1073 dir_name_exists.Append(FILE_PATH_LITERAL("Move_To_Subdir")); 1073 dir_name_exists.Append(FILE_PATH_LITERAL("Move_To_Subdir"));
1074 FilePath file_name_to = 1074 FilePath file_name_to =
1075 dir_name_to.Append(FILE_PATH_LITERAL("Move_Test_File.txt")); 1075 dir_name_to.Append(FILE_PATH_LITERAL("Move_Test_File.txt"));
1076 1076
1077 // Create the destination directory. 1077 // Create the destination directory.
1078 file_util::CreateDirectory(dir_name_exists); 1078 base::CreateDirectory(dir_name_exists);
1079 ASSERT_TRUE(PathExists(dir_name_exists)); 1079 ASSERT_TRUE(PathExists(dir_name_exists));
1080 1080
1081 EXPECT_TRUE(Move(dir_name_from, dir_name_to)); 1081 EXPECT_TRUE(Move(dir_name_from, dir_name_to));
1082 1082
1083 // Check everything has been moved. 1083 // Check everything has been moved.
1084 EXPECT_FALSE(PathExists(dir_name_from)); 1084 EXPECT_FALSE(PathExists(dir_name_from));
1085 EXPECT_FALSE(PathExists(file_name_from)); 1085 EXPECT_FALSE(PathExists(file_name_from));
1086 EXPECT_TRUE(PathExists(dir_name_to)); 1086 EXPECT_TRUE(PathExists(dir_name_to));
1087 EXPECT_TRUE(PathExists(file_name_to)); 1087 EXPECT_TRUE(PathExists(file_name_to));
1088 } 1088 }
1089 1089
1090 TEST_F(FileUtilTest, CopyDirectoryRecursivelyNew) { 1090 TEST_F(FileUtilTest, CopyDirectoryRecursivelyNew) {
1091 // Create a directory. 1091 // Create a directory.
1092 FilePath dir_name_from = 1092 FilePath dir_name_from =
1093 temp_dir_.path().Append(FILE_PATH_LITERAL("Copy_From_Subdir")); 1093 temp_dir_.path().Append(FILE_PATH_LITERAL("Copy_From_Subdir"));
1094 file_util::CreateDirectory(dir_name_from); 1094 base::CreateDirectory(dir_name_from);
1095 ASSERT_TRUE(PathExists(dir_name_from)); 1095 ASSERT_TRUE(PathExists(dir_name_from));
1096 1096
1097 // Create a file under the directory. 1097 // Create a file under the directory.
1098 FilePath file_name_from = 1098 FilePath file_name_from =
1099 dir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); 1099 dir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt"));
1100 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); 1100 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle");
1101 ASSERT_TRUE(PathExists(file_name_from)); 1101 ASSERT_TRUE(PathExists(file_name_from));
1102 1102
1103 // Create a subdirectory. 1103 // Create a subdirectory.
1104 FilePath subdir_name_from = 1104 FilePath subdir_name_from =
1105 dir_name_from.Append(FILE_PATH_LITERAL("Subdir")); 1105 dir_name_from.Append(FILE_PATH_LITERAL("Subdir"));
1106 file_util::CreateDirectory(subdir_name_from); 1106 base::CreateDirectory(subdir_name_from);
1107 ASSERT_TRUE(PathExists(subdir_name_from)); 1107 ASSERT_TRUE(PathExists(subdir_name_from));
1108 1108
1109 // Create a file under the subdirectory. 1109 // Create a file under the subdirectory.
1110 FilePath file_name2_from = 1110 FilePath file_name2_from =
1111 subdir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); 1111 subdir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt"));
1112 CreateTextFile(file_name2_from, L"Gooooooooooooooooooooogle"); 1112 CreateTextFile(file_name2_from, L"Gooooooooooooooooooooogle");
1113 ASSERT_TRUE(PathExists(file_name2_from)); 1113 ASSERT_TRUE(PathExists(file_name2_from));
1114 1114
1115 // Copy the directory recursively. 1115 // Copy the directory recursively.
1116 FilePath dir_name_to = 1116 FilePath dir_name_to =
(...skipping 17 matching lines...) Expand all
1134 EXPECT_TRUE(PathExists(dir_name_to)); 1134 EXPECT_TRUE(PathExists(dir_name_to));
1135 EXPECT_TRUE(PathExists(file_name_to)); 1135 EXPECT_TRUE(PathExists(file_name_to));
1136 EXPECT_TRUE(PathExists(subdir_name_to)); 1136 EXPECT_TRUE(PathExists(subdir_name_to));
1137 EXPECT_TRUE(PathExists(file_name2_to)); 1137 EXPECT_TRUE(PathExists(file_name2_to));
1138 } 1138 }
1139 1139
1140 TEST_F(FileUtilTest, CopyDirectoryRecursivelyExists) { 1140 TEST_F(FileUtilTest, CopyDirectoryRecursivelyExists) {
1141 // Create a directory. 1141 // Create a directory.
1142 FilePath dir_name_from = 1142 FilePath dir_name_from =
1143 temp_dir_.path().Append(FILE_PATH_LITERAL("Copy_From_Subdir")); 1143 temp_dir_.path().Append(FILE_PATH_LITERAL("Copy_From_Subdir"));
1144 file_util::CreateDirectory(dir_name_from); 1144 base::CreateDirectory(dir_name_from);
1145 ASSERT_TRUE(PathExists(dir_name_from)); 1145 ASSERT_TRUE(PathExists(dir_name_from));
1146 1146
1147 // Create a file under the directory. 1147 // Create a file under the directory.
1148 FilePath file_name_from = 1148 FilePath file_name_from =
1149 dir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); 1149 dir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt"));
1150 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); 1150 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle");
1151 ASSERT_TRUE(PathExists(file_name_from)); 1151 ASSERT_TRUE(PathExists(file_name_from));
1152 1152
1153 // Create a subdirectory. 1153 // Create a subdirectory.
1154 FilePath subdir_name_from = 1154 FilePath subdir_name_from =
1155 dir_name_from.Append(FILE_PATH_LITERAL("Subdir")); 1155 dir_name_from.Append(FILE_PATH_LITERAL("Subdir"));
1156 file_util::CreateDirectory(subdir_name_from); 1156 base::CreateDirectory(subdir_name_from);
1157 ASSERT_TRUE(PathExists(subdir_name_from)); 1157 ASSERT_TRUE(PathExists(subdir_name_from));
1158 1158
1159 // Create a file under the subdirectory. 1159 // Create a file under the subdirectory.
1160 FilePath file_name2_from = 1160 FilePath file_name2_from =
1161 subdir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); 1161 subdir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt"));
1162 CreateTextFile(file_name2_from, L"Gooooooooooooooooooooogle"); 1162 CreateTextFile(file_name2_from, L"Gooooooooooooooooooooogle");
1163 ASSERT_TRUE(PathExists(file_name2_from)); 1163 ASSERT_TRUE(PathExists(file_name2_from));
1164 1164
1165 // Copy the directory recursively. 1165 // Copy the directory recursively.
1166 FilePath dir_name_exists = 1166 FilePath dir_name_exists =
1167 temp_dir_.path().Append(FILE_PATH_LITERAL("Destination")); 1167 temp_dir_.path().Append(FILE_PATH_LITERAL("Destination"));
1168 1168
1169 FilePath dir_name_to = 1169 FilePath dir_name_to =
1170 dir_name_exists.Append(FILE_PATH_LITERAL("Copy_From_Subdir")); 1170 dir_name_exists.Append(FILE_PATH_LITERAL("Copy_From_Subdir"));
1171 FilePath file_name_to = 1171 FilePath file_name_to =
1172 dir_name_to.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); 1172 dir_name_to.Append(FILE_PATH_LITERAL("Copy_Test_File.txt"));
1173 FilePath subdir_name_to = 1173 FilePath subdir_name_to =
1174 dir_name_to.Append(FILE_PATH_LITERAL("Subdir")); 1174 dir_name_to.Append(FILE_PATH_LITERAL("Subdir"));
1175 FilePath file_name2_to = 1175 FilePath file_name2_to =
1176 subdir_name_to.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); 1176 subdir_name_to.Append(FILE_PATH_LITERAL("Copy_Test_File.txt"));
1177 1177
1178 // Create the destination directory. 1178 // Create the destination directory.
1179 file_util::CreateDirectory(dir_name_exists); 1179 base::CreateDirectory(dir_name_exists);
1180 ASSERT_TRUE(PathExists(dir_name_exists)); 1180 ASSERT_TRUE(PathExists(dir_name_exists));
1181 1181
1182 EXPECT_TRUE(CopyDirectory(dir_name_from, dir_name_exists, true)); 1182 EXPECT_TRUE(CopyDirectory(dir_name_from, dir_name_exists, true));
1183 1183
1184 // Check everything has been copied. 1184 // Check everything has been copied.
1185 EXPECT_TRUE(PathExists(dir_name_from)); 1185 EXPECT_TRUE(PathExists(dir_name_from));
1186 EXPECT_TRUE(PathExists(file_name_from)); 1186 EXPECT_TRUE(PathExists(file_name_from));
1187 EXPECT_TRUE(PathExists(subdir_name_from)); 1187 EXPECT_TRUE(PathExists(subdir_name_from));
1188 EXPECT_TRUE(PathExists(file_name2_from)); 1188 EXPECT_TRUE(PathExists(file_name2_from));
1189 EXPECT_TRUE(PathExists(dir_name_to)); 1189 EXPECT_TRUE(PathExists(dir_name_to));
1190 EXPECT_TRUE(PathExists(file_name_to)); 1190 EXPECT_TRUE(PathExists(file_name_to));
1191 EXPECT_TRUE(PathExists(subdir_name_to)); 1191 EXPECT_TRUE(PathExists(subdir_name_to));
1192 EXPECT_TRUE(PathExists(file_name2_to)); 1192 EXPECT_TRUE(PathExists(file_name2_to));
1193 } 1193 }
1194 1194
1195 TEST_F(FileUtilTest, CopyDirectoryNew) { 1195 TEST_F(FileUtilTest, CopyDirectoryNew) {
1196 // Create a directory. 1196 // Create a directory.
1197 FilePath dir_name_from = 1197 FilePath dir_name_from =
1198 temp_dir_.path().Append(FILE_PATH_LITERAL("Copy_From_Subdir")); 1198 temp_dir_.path().Append(FILE_PATH_LITERAL("Copy_From_Subdir"));
1199 file_util::CreateDirectory(dir_name_from); 1199 base::CreateDirectory(dir_name_from);
1200 ASSERT_TRUE(PathExists(dir_name_from)); 1200 ASSERT_TRUE(PathExists(dir_name_from));
1201 1201
1202 // Create a file under the directory. 1202 // Create a file under the directory.
1203 FilePath file_name_from = 1203 FilePath file_name_from =
1204 dir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); 1204 dir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt"));
1205 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); 1205 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle");
1206 ASSERT_TRUE(PathExists(file_name_from)); 1206 ASSERT_TRUE(PathExists(file_name_from));
1207 1207
1208 // Create a subdirectory. 1208 // Create a subdirectory.
1209 FilePath subdir_name_from = 1209 FilePath subdir_name_from =
1210 dir_name_from.Append(FILE_PATH_LITERAL("Subdir")); 1210 dir_name_from.Append(FILE_PATH_LITERAL("Subdir"));
1211 file_util::CreateDirectory(subdir_name_from); 1211 base::CreateDirectory(subdir_name_from);
1212 ASSERT_TRUE(PathExists(subdir_name_from)); 1212 ASSERT_TRUE(PathExists(subdir_name_from));
1213 1213
1214 // Create a file under the subdirectory. 1214 // Create a file under the subdirectory.
1215 FilePath file_name2_from = 1215 FilePath file_name2_from =
1216 subdir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); 1216 subdir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt"));
1217 CreateTextFile(file_name2_from, L"Gooooooooooooooooooooogle"); 1217 CreateTextFile(file_name2_from, L"Gooooooooooooooooooooogle");
1218 ASSERT_TRUE(PathExists(file_name2_from)); 1218 ASSERT_TRUE(PathExists(file_name2_from));
1219 1219
1220 // Copy the directory not recursively. 1220 // Copy the directory not recursively.
1221 FilePath dir_name_to = 1221 FilePath dir_name_to =
(...skipping 14 matching lines...) Expand all
1236 EXPECT_TRUE(PathExists(file_name2_from)); 1236 EXPECT_TRUE(PathExists(file_name2_from));
1237 EXPECT_TRUE(PathExists(dir_name_to)); 1237 EXPECT_TRUE(PathExists(dir_name_to));
1238 EXPECT_TRUE(PathExists(file_name_to)); 1238 EXPECT_TRUE(PathExists(file_name_to));
1239 EXPECT_FALSE(PathExists(subdir_name_to)); 1239 EXPECT_FALSE(PathExists(subdir_name_to));
1240 } 1240 }
1241 1241
1242 TEST_F(FileUtilTest, CopyDirectoryExists) { 1242 TEST_F(FileUtilTest, CopyDirectoryExists) {
1243 // Create a directory. 1243 // Create a directory.
1244 FilePath dir_name_from = 1244 FilePath dir_name_from =
1245 temp_dir_.path().Append(FILE_PATH_LITERAL("Copy_From_Subdir")); 1245 temp_dir_.path().Append(FILE_PATH_LITERAL("Copy_From_Subdir"));
1246 file_util::CreateDirectory(dir_name_from); 1246 base::CreateDirectory(dir_name_from);
1247 ASSERT_TRUE(PathExists(dir_name_from)); 1247 ASSERT_TRUE(PathExists(dir_name_from));
1248 1248
1249 // Create a file under the directory. 1249 // Create a file under the directory.
1250 FilePath file_name_from = 1250 FilePath file_name_from =
1251 dir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); 1251 dir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt"));
1252 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); 1252 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle");
1253 ASSERT_TRUE(PathExists(file_name_from)); 1253 ASSERT_TRUE(PathExists(file_name_from));
1254 1254
1255 // Create a subdirectory. 1255 // Create a subdirectory.
1256 FilePath subdir_name_from = 1256 FilePath subdir_name_from =
1257 dir_name_from.Append(FILE_PATH_LITERAL("Subdir")); 1257 dir_name_from.Append(FILE_PATH_LITERAL("Subdir"));
1258 file_util::CreateDirectory(subdir_name_from); 1258 base::CreateDirectory(subdir_name_from);
1259 ASSERT_TRUE(PathExists(subdir_name_from)); 1259 ASSERT_TRUE(PathExists(subdir_name_from));
1260 1260
1261 // Create a file under the subdirectory. 1261 // Create a file under the subdirectory.
1262 FilePath file_name2_from = 1262 FilePath file_name2_from =
1263 subdir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); 1263 subdir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt"));
1264 CreateTextFile(file_name2_from, L"Gooooooooooooooooooooogle"); 1264 CreateTextFile(file_name2_from, L"Gooooooooooooooooooooogle");
1265 ASSERT_TRUE(PathExists(file_name2_from)); 1265 ASSERT_TRUE(PathExists(file_name2_from));
1266 1266
1267 // Copy the directory not recursively. 1267 // Copy the directory not recursively.
1268 FilePath dir_name_to = 1268 FilePath dir_name_to =
1269 temp_dir_.path().Append(FILE_PATH_LITERAL("Copy_To_Subdir")); 1269 temp_dir_.path().Append(FILE_PATH_LITERAL("Copy_To_Subdir"));
1270 FilePath file_name_to = 1270 FilePath file_name_to =
1271 dir_name_to.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); 1271 dir_name_to.Append(FILE_PATH_LITERAL("Copy_Test_File.txt"));
1272 FilePath subdir_name_to = 1272 FilePath subdir_name_to =
1273 dir_name_to.Append(FILE_PATH_LITERAL("Subdir")); 1273 dir_name_to.Append(FILE_PATH_LITERAL("Subdir"));
1274 1274
1275 // Create the destination directory. 1275 // Create the destination directory.
1276 file_util::CreateDirectory(dir_name_to); 1276 base::CreateDirectory(dir_name_to);
1277 ASSERT_TRUE(PathExists(dir_name_to)); 1277 ASSERT_TRUE(PathExists(dir_name_to));
1278 1278
1279 EXPECT_TRUE(CopyDirectory(dir_name_from, dir_name_to, false)); 1279 EXPECT_TRUE(CopyDirectory(dir_name_from, dir_name_to, false));
1280 1280
1281 // Check everything has been copied. 1281 // Check everything has been copied.
1282 EXPECT_TRUE(PathExists(dir_name_from)); 1282 EXPECT_TRUE(PathExists(dir_name_from));
1283 EXPECT_TRUE(PathExists(file_name_from)); 1283 EXPECT_TRUE(PathExists(file_name_from));
1284 EXPECT_TRUE(PathExists(subdir_name_from)); 1284 EXPECT_TRUE(PathExists(subdir_name_from));
1285 EXPECT_TRUE(PathExists(file_name2_from)); 1285 EXPECT_TRUE(PathExists(file_name2_from));
1286 EXPECT_TRUE(PathExists(dir_name_to)); 1286 EXPECT_TRUE(PathExists(dir_name_to));
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
1329 TEST_F(FileUtilTest, CopyFileWithCopyDirectoryRecursiveToExistingDirectory) { 1329 TEST_F(FileUtilTest, CopyFileWithCopyDirectoryRecursiveToExistingDirectory) {
1330 // Create a file 1330 // Create a file
1331 FilePath file_name_from = 1331 FilePath file_name_from =
1332 temp_dir_.path().Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); 1332 temp_dir_.path().Append(FILE_PATH_LITERAL("Copy_Test_File.txt"));
1333 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); 1333 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle");
1334 ASSERT_TRUE(PathExists(file_name_from)); 1334 ASSERT_TRUE(PathExists(file_name_from));
1335 1335
1336 // The destination 1336 // The destination
1337 FilePath dir_name_to = 1337 FilePath dir_name_to =
1338 temp_dir_.path().Append(FILE_PATH_LITERAL("Destination")); 1338 temp_dir_.path().Append(FILE_PATH_LITERAL("Destination"));
1339 file_util::CreateDirectory(dir_name_to); 1339 base::CreateDirectory(dir_name_to);
1340 ASSERT_TRUE(PathExists(dir_name_to)); 1340 ASSERT_TRUE(PathExists(dir_name_to));
1341 FilePath file_name_to = 1341 FilePath file_name_to =
1342 dir_name_to.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); 1342 dir_name_to.Append(FILE_PATH_LITERAL("Copy_Test_File.txt"));
1343 1343
1344 EXPECT_TRUE(CopyDirectory(file_name_from, dir_name_to, true)); 1344 EXPECT_TRUE(CopyDirectory(file_name_from, dir_name_to, true));
1345 1345
1346 // Check the has been copied 1346 // Check the has been copied
1347 EXPECT_TRUE(PathExists(file_name_to)); 1347 EXPECT_TRUE(PathExists(file_name_to));
1348 } 1348 }
1349 1349
1350 TEST_F(FileUtilTest, CopyDirectoryWithTrailingSeparators) { 1350 TEST_F(FileUtilTest, CopyDirectoryWithTrailingSeparators) {
1351 // Create a directory. 1351 // Create a directory.
1352 FilePath dir_name_from = 1352 FilePath dir_name_from =
1353 temp_dir_.path().Append(FILE_PATH_LITERAL("Copy_From_Subdir")); 1353 temp_dir_.path().Append(FILE_PATH_LITERAL("Copy_From_Subdir"));
1354 file_util::CreateDirectory(dir_name_from); 1354 base::CreateDirectory(dir_name_from);
1355 ASSERT_TRUE(PathExists(dir_name_from)); 1355 ASSERT_TRUE(PathExists(dir_name_from));
1356 1356
1357 // Create a file under the directory. 1357 // Create a file under the directory.
1358 FilePath file_name_from = 1358 FilePath file_name_from =
1359 dir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); 1359 dir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt"));
1360 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); 1360 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle");
1361 ASSERT_TRUE(PathExists(file_name_from)); 1361 ASSERT_TRUE(PathExists(file_name_from));
1362 1362
1363 // Copy the directory recursively. 1363 // Copy the directory recursively.
1364 FilePath dir_name_to = 1364 FilePath dir_name_to =
(...skipping 16 matching lines...) Expand all
1381 EXPECT_TRUE(PathExists(dir_name_from)); 1381 EXPECT_TRUE(PathExists(dir_name_from));
1382 EXPECT_TRUE(PathExists(file_name_from)); 1382 EXPECT_TRUE(PathExists(file_name_from));
1383 EXPECT_TRUE(PathExists(dir_name_to)); 1383 EXPECT_TRUE(PathExists(dir_name_to));
1384 EXPECT_TRUE(PathExists(file_name_to)); 1384 EXPECT_TRUE(PathExists(file_name_to));
1385 } 1385 }
1386 1386
1387 TEST_F(FileUtilTest, CopyFile) { 1387 TEST_F(FileUtilTest, CopyFile) {
1388 // Create a directory 1388 // Create a directory
1389 FilePath dir_name_from = 1389 FilePath dir_name_from =
1390 temp_dir_.path().Append(FILE_PATH_LITERAL("Copy_From_Subdir")); 1390 temp_dir_.path().Append(FILE_PATH_LITERAL("Copy_From_Subdir"));
1391 file_util::CreateDirectory(dir_name_from); 1391 base::CreateDirectory(dir_name_from);
1392 ASSERT_TRUE(PathExists(dir_name_from)); 1392 ASSERT_TRUE(PathExists(dir_name_from));
1393 1393
1394 // Create a file under the directory 1394 // Create a file under the directory
1395 FilePath file_name_from = 1395 FilePath file_name_from =
1396 dir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt")); 1396 dir_name_from.Append(FILE_PATH_LITERAL("Copy_Test_File.txt"));
1397 const std::wstring file_contents(L"Gooooooooooooooooooooogle"); 1397 const std::wstring file_contents(L"Gooooooooooooooooooooogle");
1398 CreateTextFile(file_name_from, file_contents); 1398 CreateTextFile(file_name_from, file_contents);
1399 ASSERT_TRUE(PathExists(file_name_from)); 1399 ASSERT_TRUE(PathExists(file_name_from));
1400 1400
1401 // Copy the file. 1401 // Copy the file.
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
1516 EXPECT_FALSE(TextContentsEqual(original_file, empty1_file)); 1516 EXPECT_FALSE(TextContentsEqual(original_file, empty1_file));
1517 EXPECT_TRUE(TextContentsEqual(blank_line_file, blank_line_crlf_file)); 1517 EXPECT_TRUE(TextContentsEqual(blank_line_file, blank_line_crlf_file));
1518 } 1518 }
1519 1519
1520 // We don't need equivalent functionality outside of Windows. 1520 // We don't need equivalent functionality outside of Windows.
1521 #if defined(OS_WIN) 1521 #if defined(OS_WIN)
1522 TEST_F(FileUtilTest, CopyAndDeleteDirectoryTest) { 1522 TEST_F(FileUtilTest, CopyAndDeleteDirectoryTest) {
1523 // Create a directory 1523 // Create a directory
1524 FilePath dir_name_from = 1524 FilePath dir_name_from =
1525 temp_dir_.path().Append(FILE_PATH_LITERAL("CopyAndDelete_From_Subdir")); 1525 temp_dir_.path().Append(FILE_PATH_LITERAL("CopyAndDelete_From_Subdir"));
1526 file_util::CreateDirectory(dir_name_from); 1526 base::CreateDirectory(dir_name_from);
1527 ASSERT_TRUE(PathExists(dir_name_from)); 1527 ASSERT_TRUE(PathExists(dir_name_from));
1528 1528
1529 // Create a file under the directory 1529 // Create a file under the directory
1530 FilePath file_name_from = 1530 FilePath file_name_from =
1531 dir_name_from.Append(FILE_PATH_LITERAL("CopyAndDelete_Test_File.txt")); 1531 dir_name_from.Append(FILE_PATH_LITERAL("CopyAndDelete_Test_File.txt"));
1532 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); 1532 CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle");
1533 ASSERT_TRUE(PathExists(file_name_from)); 1533 ASSERT_TRUE(PathExists(file_name_from));
1534 1534
1535 // Move the directory by using CopyAndDeleteDirectory 1535 // Move the directory by using CopyAndDeleteDirectory
1536 FilePath dir_name_to = temp_dir_.path().Append( 1536 FilePath dir_name_to = temp_dir_.path().Append(
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
1645 temp_dir_.path().Append(FILE_PATH_LITERAL("create_directory_test")); 1645 temp_dir_.path().Append(FILE_PATH_LITERAL("create_directory_test"));
1646 #if defined(OS_WIN) 1646 #if defined(OS_WIN)
1647 FilePath test_path = 1647 FilePath test_path =
1648 test_root.Append(FILE_PATH_LITERAL("dir\\tree\\likely\\doesnt\\exist\\")); 1648 test_root.Append(FILE_PATH_LITERAL("dir\\tree\\likely\\doesnt\\exist\\"));
1649 #elif defined(OS_POSIX) 1649 #elif defined(OS_POSIX)
1650 FilePath test_path = 1650 FilePath test_path =
1651 test_root.Append(FILE_PATH_LITERAL("dir/tree/likely/doesnt/exist/")); 1651 test_root.Append(FILE_PATH_LITERAL("dir/tree/likely/doesnt/exist/"));
1652 #endif 1652 #endif
1653 1653
1654 EXPECT_FALSE(PathExists(test_path)); 1654 EXPECT_FALSE(PathExists(test_path));
1655 EXPECT_TRUE(file_util::CreateDirectory(test_path)); 1655 EXPECT_TRUE(base::CreateDirectory(test_path));
1656 EXPECT_TRUE(PathExists(test_path)); 1656 EXPECT_TRUE(PathExists(test_path));
1657 // CreateDirectory returns true if the DirectoryExists returns true. 1657 // CreateDirectory returns true if the DirectoryExists returns true.
1658 EXPECT_TRUE(file_util::CreateDirectory(test_path)); 1658 EXPECT_TRUE(base::CreateDirectory(test_path));
1659 1659
1660 // Doesn't work to create it on top of a non-dir 1660 // Doesn't work to create it on top of a non-dir
1661 test_path = test_path.Append(FILE_PATH_LITERAL("foobar.txt")); 1661 test_path = test_path.Append(FILE_PATH_LITERAL("foobar.txt"));
1662 EXPECT_FALSE(PathExists(test_path)); 1662 EXPECT_FALSE(PathExists(test_path));
1663 CreateTextFile(test_path, L"test file"); 1663 CreateTextFile(test_path, L"test file");
1664 EXPECT_TRUE(PathExists(test_path)); 1664 EXPECT_TRUE(PathExists(test_path));
1665 EXPECT_FALSE(file_util::CreateDirectory(test_path)); 1665 EXPECT_FALSE(base::CreateDirectory(test_path));
1666 1666
1667 EXPECT_TRUE(DeleteFile(test_root, true)); 1667 EXPECT_TRUE(DeleteFile(test_root, true));
1668 EXPECT_FALSE(PathExists(test_root)); 1668 EXPECT_FALSE(PathExists(test_root));
1669 EXPECT_FALSE(PathExists(test_path)); 1669 EXPECT_FALSE(PathExists(test_path));
1670 1670
1671 // Verify assumptions made by the Windows implementation: 1671 // Verify assumptions made by the Windows implementation:
1672 // 1. The current directory always exists. 1672 // 1. The current directory always exists.
1673 // 2. The root directory always exists. 1673 // 2. The root directory always exists.
1674 ASSERT_TRUE(DirectoryExists(FilePath(FilePath::kCurrentDirectory))); 1674 ASSERT_TRUE(DirectoryExists(FilePath(FilePath::kCurrentDirectory)));
1675 FilePath top_level = test_root; 1675 FilePath top_level = test_root;
1676 while (top_level != top_level.DirName()) { 1676 while (top_level != top_level.DirName()) {
1677 top_level = top_level.DirName(); 1677 top_level = top_level.DirName();
1678 } 1678 }
1679 ASSERT_TRUE(DirectoryExists(top_level)); 1679 ASSERT_TRUE(DirectoryExists(top_level));
1680 1680
1681 // Given these assumptions hold, it should be safe to 1681 // Given these assumptions hold, it should be safe to
1682 // test that "creating" these directories succeeds. 1682 // test that "creating" these directories succeeds.
1683 EXPECT_TRUE(file_util::CreateDirectory( 1683 EXPECT_TRUE(base::CreateDirectory(
1684 FilePath(FilePath::kCurrentDirectory))); 1684 FilePath(FilePath::kCurrentDirectory)));
1685 EXPECT_TRUE(file_util::CreateDirectory(top_level)); 1685 EXPECT_TRUE(base::CreateDirectory(top_level));
1686 1686
1687 #if defined(OS_WIN) 1687 #if defined(OS_WIN)
1688 FilePath invalid_drive(FILE_PATH_LITERAL("o:\\")); 1688 FilePath invalid_drive(FILE_PATH_LITERAL("o:\\"));
1689 FilePath invalid_path = 1689 FilePath invalid_path =
1690 invalid_drive.Append(FILE_PATH_LITERAL("some\\inaccessible\\dir")); 1690 invalid_drive.Append(FILE_PATH_LITERAL("some\\inaccessible\\dir"));
1691 if (!PathExists(invalid_drive)) { 1691 if (!PathExists(invalid_drive)) {
1692 EXPECT_FALSE(file_util::CreateDirectory(invalid_path)); 1692 EXPECT_FALSE(base::CreateDirectory(invalid_path));
1693 } 1693 }
1694 #endif 1694 #endif
1695 } 1695 }
1696 1696
1697 TEST_F(FileUtilTest, DetectDirectoryTest) { 1697 TEST_F(FileUtilTest, DetectDirectoryTest) {
1698 // Check a directory 1698 // Check a directory
1699 FilePath test_root = 1699 FilePath test_root =
1700 temp_dir_.path().Append(FILE_PATH_LITERAL("detect_directory_test")); 1700 temp_dir_.path().Append(FILE_PATH_LITERAL("detect_directory_test"));
1701 EXPECT_FALSE(PathExists(test_root)); 1701 EXPECT_FALSE(PathExists(test_root));
1702 EXPECT_TRUE(file_util::CreateDirectory(test_root)); 1702 EXPECT_TRUE(base::CreateDirectory(test_root));
1703 EXPECT_TRUE(PathExists(test_root)); 1703 EXPECT_TRUE(PathExists(test_root));
1704 EXPECT_TRUE(DirectoryExists(test_root)); 1704 EXPECT_TRUE(DirectoryExists(test_root));
1705 // Check a file 1705 // Check a file
1706 FilePath test_path = 1706 FilePath test_path =
1707 test_root.Append(FILE_PATH_LITERAL("foobar.txt")); 1707 test_root.Append(FILE_PATH_LITERAL("foobar.txt"));
1708 EXPECT_FALSE(PathExists(test_path)); 1708 EXPECT_FALSE(PathExists(test_path));
1709 CreateTextFile(test_path, L"test file"); 1709 CreateTextFile(test_path, L"test file");
1710 EXPECT_TRUE(PathExists(test_path)); 1710 EXPECT_TRUE(PathExists(test_path));
1711 EXPECT_FALSE(DirectoryExists(test_path)); 1711 EXPECT_FALSE(DirectoryExists(test_path));
1712 EXPECT_TRUE(DeleteFile(test_path, false)); 1712 EXPECT_TRUE(DeleteFile(test_path, false));
1713 1713
1714 EXPECT_TRUE(DeleteFile(test_root, true)); 1714 EXPECT_TRUE(DeleteFile(test_root, true));
1715 } 1715 }
1716 1716
1717 TEST_F(FileUtilTest, FileEnumeratorTest) { 1717 TEST_F(FileUtilTest, FileEnumeratorTest) {
1718 // Test an empty directory. 1718 // Test an empty directory.
1719 FileEnumerator f0(temp_dir_.path(), true, FILES_AND_DIRECTORIES); 1719 FileEnumerator f0(temp_dir_.path(), true, FILES_AND_DIRECTORIES);
1720 EXPECT_EQ(f0.Next().value(), FPL("")); 1720 EXPECT_EQ(f0.Next().value(), FPL(""));
1721 EXPECT_EQ(f0.Next().value(), FPL("")); 1721 EXPECT_EQ(f0.Next().value(), FPL(""));
1722 1722
1723 // Test an empty directory, non-recursively, including "..". 1723 // Test an empty directory, non-recursively, including "..".
1724 FileEnumerator f0_dotdot(temp_dir_.path(), false, 1724 FileEnumerator f0_dotdot(temp_dir_.path(), false,
1725 FILES_AND_DIRECTORIES | FileEnumerator::INCLUDE_DOT_DOT); 1725 FILES_AND_DIRECTORIES | FileEnumerator::INCLUDE_DOT_DOT);
1726 EXPECT_EQ(temp_dir_.path().Append(FPL("..")).value(), 1726 EXPECT_EQ(temp_dir_.path().Append(FPL("..")).value(),
1727 f0_dotdot.Next().value()); 1727 f0_dotdot.Next().value());
1728 EXPECT_EQ(FPL(""), f0_dotdot.Next().value()); 1728 EXPECT_EQ(FPL(""), f0_dotdot.Next().value());
1729 1729
1730 // create the directories 1730 // create the directories
1731 FilePath dir1 = temp_dir_.path().Append(FPL("dir1")); 1731 FilePath dir1 = temp_dir_.path().Append(FPL("dir1"));
1732 EXPECT_TRUE(file_util::CreateDirectory(dir1)); 1732 EXPECT_TRUE(base::CreateDirectory(dir1));
1733 FilePath dir2 = temp_dir_.path().Append(FPL("dir2")); 1733 FilePath dir2 = temp_dir_.path().Append(FPL("dir2"));
1734 EXPECT_TRUE(file_util::CreateDirectory(dir2)); 1734 EXPECT_TRUE(base::CreateDirectory(dir2));
1735 FilePath dir2inner = dir2.Append(FPL("inner")); 1735 FilePath dir2inner = dir2.Append(FPL("inner"));
1736 EXPECT_TRUE(file_util::CreateDirectory(dir2inner)); 1736 EXPECT_TRUE(base::CreateDirectory(dir2inner));
1737 1737
1738 // create the files 1738 // create the files
1739 FilePath dir2file = dir2.Append(FPL("dir2file.txt")); 1739 FilePath dir2file = dir2.Append(FPL("dir2file.txt"));
1740 CreateTextFile(dir2file, std::wstring()); 1740 CreateTextFile(dir2file, std::wstring());
1741 FilePath dir2innerfile = dir2inner.Append(FPL("innerfile.txt")); 1741 FilePath dir2innerfile = dir2inner.Append(FPL("innerfile.txt"));
1742 CreateTextFile(dir2innerfile, std::wstring()); 1742 CreateTextFile(dir2innerfile, std::wstring());
1743 FilePath file1 = temp_dir_.path().Append(FPL("file1.txt")); 1743 FilePath file1 = temp_dir_.path().Append(FPL("file1.txt"));
1744 CreateTextFile(file1, std::wstring()); 1744 CreateTextFile(file1, std::wstring());
1745 FilePath file2_rel = dir2.Append(FilePath::kParentDirectory) 1745 FilePath file2_rel = dir2.Append(FilePath::kParentDirectory)
1746 .Append(FPL("file2.txt")); 1746 .Append(FPL("file2.txt"));
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
1863 } 1863 }
1864 1864
1865 TEST_F(FileUtilTest, AppendToFile) { 1865 TEST_F(FileUtilTest, AppendToFile) {
1866 FilePath data_dir = 1866 FilePath data_dir =
1867 temp_dir_.path().Append(FILE_PATH_LITERAL("FilePathTest")); 1867 temp_dir_.path().Append(FILE_PATH_LITERAL("FilePathTest"));
1868 1868
1869 // Create a fresh, empty copy of this directory. 1869 // Create a fresh, empty copy of this directory.
1870 if (PathExists(data_dir)) { 1870 if (PathExists(data_dir)) {
1871 ASSERT_TRUE(DeleteFile(data_dir, true)); 1871 ASSERT_TRUE(DeleteFile(data_dir, true));
1872 } 1872 }
1873 ASSERT_TRUE(file_util::CreateDirectory(data_dir)); 1873 ASSERT_TRUE(base::CreateDirectory(data_dir));
1874 1874
1875 // Create a fresh, empty copy of this directory. 1875 // Create a fresh, empty copy of this directory.
1876 if (PathExists(data_dir)) { 1876 if (PathExists(data_dir)) {
1877 ASSERT_TRUE(DeleteFile(data_dir, true)); 1877 ASSERT_TRUE(DeleteFile(data_dir, true));
1878 } 1878 }
1879 ASSERT_TRUE(file_util::CreateDirectory(data_dir)); 1879 ASSERT_TRUE(base::CreateDirectory(data_dir));
1880 FilePath foobar(data_dir.Append(FILE_PATH_LITERAL("foobar.txt"))); 1880 FilePath foobar(data_dir.Append(FILE_PATH_LITERAL("foobar.txt")));
1881 1881
1882 std::string data("hello"); 1882 std::string data("hello");
1883 EXPECT_EQ(-1, file_util::AppendToFile(foobar, data.c_str(), data.length())); 1883 EXPECT_EQ(-1, file_util::AppendToFile(foobar, data.c_str(), data.length()));
1884 EXPECT_EQ(static_cast<int>(data.length()), 1884 EXPECT_EQ(static_cast<int>(data.length()),
1885 file_util::WriteFile(foobar, data.c_str(), data.length())); 1885 file_util::WriteFile(foobar, data.c_str(), data.length()));
1886 EXPECT_EQ(static_cast<int>(data.length()), 1886 EXPECT_EQ(static_cast<int>(data.length()),
1887 file_util::AppendToFile(foobar, data.c_str(), data.length())); 1887 file_util::AppendToFile(foobar, data.c_str(), data.length()));
1888 1888
1889 const std::wstring read_content = ReadTextFile(foobar); 1889 const std::wstring read_content = ReadTextFile(foobar);
1890 EXPECT_EQ(L"hellohello", read_content); 1890 EXPECT_EQ(L"hellohello", read_content);
1891 } 1891 }
1892 1892
1893 TEST_F(FileUtilTest, TouchFile) { 1893 TEST_F(FileUtilTest, TouchFile) {
1894 FilePath data_dir = 1894 FilePath data_dir =
1895 temp_dir_.path().Append(FILE_PATH_LITERAL("FilePathTest")); 1895 temp_dir_.path().Append(FILE_PATH_LITERAL("FilePathTest"));
1896 1896
1897 // Create a fresh, empty copy of this directory. 1897 // Create a fresh, empty copy of this directory.
1898 if (PathExists(data_dir)) { 1898 if (PathExists(data_dir)) {
1899 ASSERT_TRUE(DeleteFile(data_dir, true)); 1899 ASSERT_TRUE(DeleteFile(data_dir, true));
1900 } 1900 }
1901 ASSERT_TRUE(file_util::CreateDirectory(data_dir)); 1901 ASSERT_TRUE(base::CreateDirectory(data_dir));
1902 1902
1903 FilePath foobar(data_dir.Append(FILE_PATH_LITERAL("foobar.txt"))); 1903 FilePath foobar(data_dir.Append(FILE_PATH_LITERAL("foobar.txt")));
1904 std::string data("hello"); 1904 std::string data("hello");
1905 ASSERT_TRUE(file_util::WriteFile(foobar, data.c_str(), data.length())); 1905 ASSERT_TRUE(file_util::WriteFile(foobar, data.c_str(), data.length()));
1906 1906
1907 Time access_time; 1907 Time access_time;
1908 // This timestamp is divisible by one day (in local timezone), 1908 // This timestamp is divisible by one day (in local timezone),
1909 // to make it work on FAT too. 1909 // to make it work on FAT too.
1910 ASSERT_TRUE(Time::FromString("Wed, 16 Nov 1994, 00:00:00", 1910 ASSERT_TRUE(Time::FromString("Wed, 16 Nov 1994, 00:00:00",
1911 &access_time)); 1911 &access_time));
(...skipping 11 matching lines...) Expand all
1923 access_time.ToInternalValue()); 1923 access_time.ToInternalValue());
1924 EXPECT_EQ(file_info.last_modified.ToInternalValue(), 1924 EXPECT_EQ(file_info.last_modified.ToInternalValue(),
1925 modification_time.ToInternalValue()); 1925 modification_time.ToInternalValue());
1926 } 1926 }
1927 1927
1928 TEST_F(FileUtilTest, IsDirectoryEmpty) { 1928 TEST_F(FileUtilTest, IsDirectoryEmpty) {
1929 FilePath empty_dir = temp_dir_.path().Append(FILE_PATH_LITERAL("EmptyDir")); 1929 FilePath empty_dir = temp_dir_.path().Append(FILE_PATH_LITERAL("EmptyDir"));
1930 1930
1931 ASSERT_FALSE(PathExists(empty_dir)); 1931 ASSERT_FALSE(PathExists(empty_dir));
1932 1932
1933 ASSERT_TRUE(file_util::CreateDirectory(empty_dir)); 1933 ASSERT_TRUE(base::CreateDirectory(empty_dir));
1934 1934
1935 EXPECT_TRUE(base::IsDirectoryEmpty(empty_dir)); 1935 EXPECT_TRUE(base::IsDirectoryEmpty(empty_dir));
1936 1936
1937 FilePath foo(empty_dir.Append(FILE_PATH_LITERAL("foo.txt"))); 1937 FilePath foo(empty_dir.Append(FILE_PATH_LITERAL("foo.txt")));
1938 std::string bar("baz"); 1938 std::string bar("baz");
1939 ASSERT_TRUE(file_util::WriteFile(foo, bar.c_str(), bar.length())); 1939 ASSERT_TRUE(file_util::WriteFile(foo, bar.c_str(), bar.length()));
1940 1940
1941 EXPECT_FALSE(base::IsDirectoryEmpty(empty_dir)); 1941 EXPECT_FALSE(base::IsDirectoryEmpty(empty_dir));
1942 } 1942 }
1943 1943
(...skipping 11 matching lines...) Expand all
1955 protected: 1955 protected:
1956 virtual void SetUp() OVERRIDE { 1956 virtual void SetUp() OVERRIDE {
1957 FileUtilTest::SetUp(); 1957 FileUtilTest::SetUp();
1958 1958
1959 // Create a basic structure used by each test. 1959 // Create a basic structure used by each test.
1960 // base_dir_ 1960 // base_dir_
1961 // |-> sub_dir_ 1961 // |-> sub_dir_
1962 // |-> text_file_ 1962 // |-> text_file_
1963 1963
1964 base_dir_ = temp_dir_.path().AppendASCII("base_dir"); 1964 base_dir_ = temp_dir_.path().AppendASCII("base_dir");
1965 ASSERT_TRUE(file_util::CreateDirectory(base_dir_)); 1965 ASSERT_TRUE(base::CreateDirectory(base_dir_));
1966 1966
1967 sub_dir_ = base_dir_.AppendASCII("sub_dir"); 1967 sub_dir_ = base_dir_.AppendASCII("sub_dir");
1968 ASSERT_TRUE(file_util::CreateDirectory(sub_dir_)); 1968 ASSERT_TRUE(base::CreateDirectory(sub_dir_));
1969 1969
1970 text_file_ = sub_dir_.AppendASCII("file.txt"); 1970 text_file_ = sub_dir_.AppendASCII("file.txt");
1971 CreateTextFile(text_file_, L"This text file has some text in it."); 1971 CreateTextFile(text_file_, L"This text file has some text in it.");
1972 1972
1973 // Get the user and group files are created with from |base_dir_|. 1973 // Get the user and group files are created with from |base_dir_|.
1974 struct stat stat_buf; 1974 struct stat stat_buf;
1975 ASSERT_EQ(0, stat(base_dir_.value().c_str(), &stat_buf)); 1975 ASSERT_EQ(0, stat(base_dir_.value().c_str(), &stat_buf));
1976 uid_ = stat_buf.st_uid; 1976 uid_ = stat_buf.st_uid;
1977 ok_gids_.insert(stat_buf.st_gid); 1977 ok_gids_.insert(stat_buf.st_gid);
1978 bad_gids_.insert(stat_buf.st_gid + 1); 1978 bad_gids_.insert(stat_buf.st_gid + 1);
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after
2352 int fd = OpenContentUriForRead(path); 2352 int fd = OpenContentUriForRead(path);
2353 EXPECT_EQ(-1, fd); 2353 EXPECT_EQ(-1, fd);
2354 } 2354 }
2355 #endif 2355 #endif
2356 2356
2357 #endif // defined(OS_POSIX) 2357 #endif // defined(OS_POSIX)
2358 2358
2359 } // namespace 2359 } // namespace
2360 2360
2361 } // namespace base 2361 } // namespace base
OLDNEW
« no previous file with comments | « base/file_util_posix.cc ('k') | base/file_util_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698