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

Side by Side Diff: base/file_util_unittest.cc

Issue 184563006: Move WriteFile and WriteFileDescriptor from file_util to base namespace. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 9 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
« 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 685 matching lines...) Expand 10 before | Expand all | Expand 10 after
696 FilePath file_name = temp_dir_.path().Append(FPL("Test Readable File.txt")); 696 FilePath file_name = temp_dir_.path().Append(FPL("Test Readable File.txt"));
697 EXPECT_FALSE(PathExists(file_name)); 697 EXPECT_FALSE(PathExists(file_name));
698 698
699 const std::string kData("hello"); 699 const std::string kData("hello");
700 700
701 int buffer_size = kData.length(); 701 int buffer_size = kData.length();
702 char* buffer = new char[buffer_size]; 702 char* buffer = new char[buffer_size];
703 703
704 // Write file. 704 // Write file.
705 EXPECT_EQ(static_cast<int>(kData.length()), 705 EXPECT_EQ(static_cast<int>(kData.length()),
706 file_util::WriteFile(file_name, kData.data(), kData.length())); 706 WriteFile(file_name, kData.data(), kData.length()));
707 EXPECT_TRUE(PathExists(file_name)); 707 EXPECT_TRUE(PathExists(file_name));
708 708
709 // Make sure the file is readable. 709 // Make sure the file is readable.
710 int32 mode = 0; 710 int32 mode = 0;
711 EXPECT_TRUE(GetPosixFilePermissions(file_name, &mode)); 711 EXPECT_TRUE(GetPosixFilePermissions(file_name, &mode));
712 EXPECT_TRUE(mode & FILE_PERMISSION_READ_BY_USER); 712 EXPECT_TRUE(mode & FILE_PERMISSION_READ_BY_USER);
713 713
714 // Get rid of the read permission. 714 // Get rid of the read permission.
715 EXPECT_TRUE(SetPosixFilePermissions(file_name, 0u)); 715 EXPECT_TRUE(SetPosixFilePermissions(file_name, 0u));
716 EXPECT_TRUE(GetPosixFilePermissions(file_name, &mode)); 716 EXPECT_TRUE(GetPosixFilePermissions(file_name, &mode));
(...skipping 18 matching lines...) Expand all
735 735
736 TEST_F(FileUtilTest, ChangeFilePermissionsAndWrite) { 736 TEST_F(FileUtilTest, ChangeFilePermissionsAndWrite) {
737 // Create a file path. 737 // Create a file path.
738 FilePath file_name = temp_dir_.path().Append(FPL("Test Readable File.txt")); 738 FilePath file_name = temp_dir_.path().Append(FPL("Test Readable File.txt"));
739 EXPECT_FALSE(PathExists(file_name)); 739 EXPECT_FALSE(PathExists(file_name));
740 740
741 const std::string kData("hello"); 741 const std::string kData("hello");
742 742
743 // Write file. 743 // Write file.
744 EXPECT_EQ(static_cast<int>(kData.length()), 744 EXPECT_EQ(static_cast<int>(kData.length()),
745 file_util::WriteFile(file_name, kData.data(), kData.length())); 745 WriteFile(file_name, kData.data(), kData.length()));
746 EXPECT_TRUE(PathExists(file_name)); 746 EXPECT_TRUE(PathExists(file_name));
747 747
748 // Make sure the file is writable. 748 // Make sure the file is writable.
749 int mode = 0; 749 int mode = 0;
750 EXPECT_TRUE(GetPosixFilePermissions(file_name, &mode)); 750 EXPECT_TRUE(GetPosixFilePermissions(file_name, &mode));
751 EXPECT_TRUE(mode & FILE_PERMISSION_WRITE_BY_USER); 751 EXPECT_TRUE(mode & FILE_PERMISSION_WRITE_BY_USER);
752 EXPECT_TRUE(PathIsWritable(file_name)); 752 EXPECT_TRUE(PathIsWritable(file_name));
753 753
754 // Get rid of the write permission. 754 // Get rid of the write permission.
755 EXPECT_TRUE(SetPosixFilePermissions(file_name, 0u)); 755 EXPECT_TRUE(SetPosixFilePermissions(file_name, 0u));
756 EXPECT_TRUE(GetPosixFilePermissions(file_name, &mode)); 756 EXPECT_TRUE(GetPosixFilePermissions(file_name, &mode));
757 EXPECT_FALSE(mode & FILE_PERMISSION_WRITE_BY_USER); 757 EXPECT_FALSE(mode & FILE_PERMISSION_WRITE_BY_USER);
758 // Make sure the file can't be write. 758 // Make sure the file can't be write.
759 EXPECT_EQ(-1, 759 EXPECT_EQ(-1, WriteFile(file_name, kData.data(), kData.length()));
760 file_util::WriteFile(file_name, kData.data(), kData.length()));
761 EXPECT_FALSE(PathIsWritable(file_name)); 760 EXPECT_FALSE(PathIsWritable(file_name));
762 761
763 // Give read permission. 762 // Give read permission.
764 EXPECT_TRUE(SetPosixFilePermissions(file_name, 763 EXPECT_TRUE(SetPosixFilePermissions(file_name,
765 FILE_PERMISSION_WRITE_BY_USER)); 764 FILE_PERMISSION_WRITE_BY_USER));
766 EXPECT_TRUE(GetPosixFilePermissions(file_name, &mode)); 765 EXPECT_TRUE(GetPosixFilePermissions(file_name, &mode));
767 EXPECT_TRUE(mode & FILE_PERMISSION_WRITE_BY_USER); 766 EXPECT_TRUE(mode & FILE_PERMISSION_WRITE_BY_USER);
768 // Make sure the file can be write. 767 // Make sure the file can be write.
769 EXPECT_EQ(static_cast<int>(kData.length()), 768 EXPECT_EQ(static_cast<int>(kData.length()),
770 file_util::WriteFile(file_name, kData.data(), kData.length())); 769 WriteFile(file_name, kData.data(), kData.length()));
771 EXPECT_TRUE(PathIsWritable(file_name)); 770 EXPECT_TRUE(PathIsWritable(file_name));
772 771
773 // Delete the file. 772 // Delete the file.
774 EXPECT_TRUE(DeleteFile(file_name, false)); 773 EXPECT_TRUE(DeleteFile(file_name, false));
775 EXPECT_FALSE(PathExists(file_name)); 774 EXPECT_FALSE(PathExists(file_name));
776 } 775 }
777 776
778 TEST_F(FileUtilTest, ChangeDirectoryPermissionsAndEnumerate) { 777 TEST_F(FileUtilTest, ChangeDirectoryPermissionsAndEnumerate) {
779 // Create a directory path. 778 // Create a directory path.
780 FilePath subdir_path = 779 FilePath subdir_path =
781 temp_dir_.path().Append(FPL("PermissionTest1")); 780 temp_dir_.path().Append(FPL("PermissionTest1"));
782 CreateDirectory(subdir_path); 781 CreateDirectory(subdir_path);
783 ASSERT_TRUE(PathExists(subdir_path)); 782 ASSERT_TRUE(PathExists(subdir_path));
784 783
785 // Create a dummy file to enumerate. 784 // Create a dummy file to enumerate.
786 FilePath file_name = subdir_path.Append(FPL("Test Readable File.txt")); 785 FilePath file_name = subdir_path.Append(FPL("Test Readable File.txt"));
787 EXPECT_FALSE(PathExists(file_name)); 786 EXPECT_FALSE(PathExists(file_name));
788 const std::string kData("hello"); 787 const std::string kData("hello");
789 EXPECT_EQ(static_cast<int>(kData.length()), 788 EXPECT_EQ(static_cast<int>(kData.length()),
790 file_util::WriteFile(file_name, kData.data(), kData.length())); 789 WriteFile(file_name, kData.data(), kData.length()));
791 EXPECT_TRUE(PathExists(file_name)); 790 EXPECT_TRUE(PathExists(file_name));
792 791
793 // Make sure the directory has the all permissions. 792 // Make sure the directory has the all permissions.
794 int mode = 0; 793 int mode = 0;
795 EXPECT_TRUE(GetPosixFilePermissions(subdir_path, &mode)); 794 EXPECT_TRUE(GetPosixFilePermissions(subdir_path, &mode));
796 EXPECT_EQ(FILE_PERMISSION_USER_MASK, mode & FILE_PERMISSION_USER_MASK); 795 EXPECT_EQ(FILE_PERMISSION_USER_MASK, mode & FILE_PERMISSION_USER_MASK);
797 796
798 // Get rid of the permissions from the directory. 797 // Get rid of the permissions from the directory.
799 EXPECT_TRUE(SetPosixFilePermissions(subdir_path, 0u)); 798 EXPECT_TRUE(SetPosixFilePermissions(subdir_path, 0u));
800 EXPECT_TRUE(GetPosixFilePermissions(subdir_path, &mode)); 799 EXPECT_TRUE(GetPosixFilePermissions(subdir_path, &mode));
(...skipping 1142 matching lines...) Expand 10 before | Expand all | Expand 10 after
1943 // Create a fresh, empty copy of this directory. 1942 // Create a fresh, empty copy of this directory.
1944 if (PathExists(data_dir)) { 1943 if (PathExists(data_dir)) {
1945 ASSERT_TRUE(DeleteFile(data_dir, true)); 1944 ASSERT_TRUE(DeleteFile(data_dir, true));
1946 } 1945 }
1947 ASSERT_TRUE(CreateDirectory(data_dir)); 1946 ASSERT_TRUE(CreateDirectory(data_dir));
1948 FilePath foobar(data_dir.Append(FILE_PATH_LITERAL("foobar.txt"))); 1947 FilePath foobar(data_dir.Append(FILE_PATH_LITERAL("foobar.txt")));
1949 1948
1950 std::string data("hello"); 1949 std::string data("hello");
1951 EXPECT_EQ(-1, file_util::AppendToFile(foobar, data.c_str(), data.length())); 1950 EXPECT_EQ(-1, file_util::AppendToFile(foobar, data.c_str(), data.length()));
1952 EXPECT_EQ(static_cast<int>(data.length()), 1951 EXPECT_EQ(static_cast<int>(data.length()),
1953 file_util::WriteFile(foobar, data.c_str(), data.length())); 1952 WriteFile(foobar, data.c_str(), data.length()));
1954 EXPECT_EQ(static_cast<int>(data.length()), 1953 EXPECT_EQ(static_cast<int>(data.length()),
1955 file_util::AppendToFile(foobar, data.c_str(), data.length())); 1954 file_util::AppendToFile(foobar, data.c_str(), data.length()));
1956 1955
1957 const std::wstring read_content = ReadTextFile(foobar); 1956 const std::wstring read_content = ReadTextFile(foobar);
1958 EXPECT_EQ(L"hellohello", read_content); 1957 EXPECT_EQ(L"hellohello", read_content);
1959 } 1958 }
1960 1959
1961 TEST_F(FileUtilTest, ReadFileToString) { 1960 TEST_F(FileUtilTest, ReadFileToString) {
1962 const char kTestData[] = "0123"; 1961 const char kTestData[] = "0123";
1963 std::string data; 1962 std::string data;
1964 1963
1965 FilePath file_path = 1964 FilePath file_path =
1966 temp_dir_.path().Append(FILE_PATH_LITERAL("ReadFileToStringTest")); 1965 temp_dir_.path().Append(FILE_PATH_LITERAL("ReadFileToStringTest"));
1967 1966
1968 ASSERT_EQ(4, file_util::WriteFile(file_path, kTestData, 4)); 1967 ASSERT_EQ(4, WriteFile(file_path, kTestData, 4));
1969 1968
1970 EXPECT_TRUE(ReadFileToString(file_path, &data)); 1969 EXPECT_TRUE(ReadFileToString(file_path, &data));
1971 EXPECT_EQ(kTestData, data); 1970 EXPECT_EQ(kTestData, data);
1972 1971
1973 data = "temp"; 1972 data = "temp";
1974 EXPECT_FALSE(ReadFileToString(file_path, &data, 0)); 1973 EXPECT_FALSE(ReadFileToString(file_path, &data, 0));
1975 EXPECT_EQ(data.length(), 0u); 1974 EXPECT_EQ(data.length(), 0u);
1976 1975
1977 data = "temp"; 1976 data = "temp";
1978 EXPECT_FALSE(ReadFileToString(file_path, &data, 2)); 1977 EXPECT_FALSE(ReadFileToString(file_path, &data, 2));
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
2010 temp_dir_.path().Append(FILE_PATH_LITERAL("FilePathTest")); 2009 temp_dir_.path().Append(FILE_PATH_LITERAL("FilePathTest"));
2011 2010
2012 // Create a fresh, empty copy of this directory. 2011 // Create a fresh, empty copy of this directory.
2013 if (PathExists(data_dir)) { 2012 if (PathExists(data_dir)) {
2014 ASSERT_TRUE(DeleteFile(data_dir, true)); 2013 ASSERT_TRUE(DeleteFile(data_dir, true));
2015 } 2014 }
2016 ASSERT_TRUE(CreateDirectory(data_dir)); 2015 ASSERT_TRUE(CreateDirectory(data_dir));
2017 2016
2018 FilePath foobar(data_dir.Append(FILE_PATH_LITERAL("foobar.txt"))); 2017 FilePath foobar(data_dir.Append(FILE_PATH_LITERAL("foobar.txt")));
2019 std::string data("hello"); 2018 std::string data("hello");
2020 ASSERT_TRUE(file_util::WriteFile(foobar, data.c_str(), data.length())); 2019 ASSERT_TRUE(WriteFile(foobar, data.c_str(), data.length()));
2021 2020
2022 Time access_time; 2021 Time access_time;
2023 // This timestamp is divisible by one day (in local timezone), 2022 // This timestamp is divisible by one day (in local timezone),
2024 // to make it work on FAT too. 2023 // to make it work on FAT too.
2025 ASSERT_TRUE(Time::FromString("Wed, 16 Nov 1994, 00:00:00", 2024 ASSERT_TRUE(Time::FromString("Wed, 16 Nov 1994, 00:00:00",
2026 &access_time)); 2025 &access_time));
2027 2026
2028 Time modification_time; 2027 Time modification_time;
2029 // Note that this timestamp is divisible by two (seconds) - FAT stores 2028 // Note that this timestamp is divisible by two (seconds) - FAT stores
2030 // modification times with 2s resolution. 2029 // modification times with 2s resolution.
(...skipping 13 matching lines...) Expand all
2044 FilePath empty_dir = temp_dir_.path().Append(FILE_PATH_LITERAL("EmptyDir")); 2043 FilePath empty_dir = temp_dir_.path().Append(FILE_PATH_LITERAL("EmptyDir"));
2045 2044
2046 ASSERT_FALSE(PathExists(empty_dir)); 2045 ASSERT_FALSE(PathExists(empty_dir));
2047 2046
2048 ASSERT_TRUE(CreateDirectory(empty_dir)); 2047 ASSERT_TRUE(CreateDirectory(empty_dir));
2049 2048
2050 EXPECT_TRUE(IsDirectoryEmpty(empty_dir)); 2049 EXPECT_TRUE(IsDirectoryEmpty(empty_dir));
2051 2050
2052 FilePath foo(empty_dir.Append(FILE_PATH_LITERAL("foo.txt"))); 2051 FilePath foo(empty_dir.Append(FILE_PATH_LITERAL("foo.txt")));
2053 std::string bar("baz"); 2052 std::string bar("baz");
2054 ASSERT_TRUE(file_util::WriteFile(foo, bar.c_str(), bar.length())); 2053 ASSERT_TRUE(WriteFile(foo, bar.c_str(), bar.length()));
2055 2054
2056 EXPECT_FALSE(IsDirectoryEmpty(empty_dir)); 2055 EXPECT_FALSE(IsDirectoryEmpty(empty_dir));
2057 } 2056 }
2058 2057
2059 #if defined(OS_POSIX) 2058 #if defined(OS_POSIX)
2060 2059
2061 // Testing VerifyPathControlledByAdmin() is hard, because there is no 2060 // Testing VerifyPathControlledByAdmin() is hard, because there is no
2062 // way a test can make a file owned by root, or change file paths 2061 // way a test can make a file owned by root, or change file paths
2063 // at the root of the file system. VerifyPathControlledByAdmin() 2062 // at the root of the file system. VerifyPathControlledByAdmin()
2064 // is implemented as a call to VerifyPathControlledByUser, which gives 2063 // is implemented as a call to VerifyPathControlledByUser, which gives
(...skipping 439 matching lines...) Expand 10 before | Expand all | Expand 10 after
2504 // Trying to close it should crash. This is important for security. 2503 // Trying to close it should crash. This is important for security.
2505 EXPECT_DEATH(CloseWithScopedFD(fds[1]), ""); 2504 EXPECT_DEATH(CloseWithScopedFD(fds[1]), "");
2506 #endif 2505 #endif
2507 } 2506 }
2508 2507
2509 #endif // defined(OS_POSIX) 2508 #endif // defined(OS_POSIX)
2510 2509
2511 } // namespace 2510 } // namespace
2512 2511
2513 } // namespace base 2512 } // 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