| Index: base/files/file_util_unittest.cc
|
| diff --git a/base/files/file_util_unittest.cc b/base/files/file_util_unittest.cc
|
| index b107b0f9c89afccc81080755581fbe2f1ffbabd2..1d8eeef653519a2b1492d2eeaecd7b6724a95298 100644
|
| --- a/base/files/file_util_unittest.cc
|
| +++ b/base/files/file_util_unittest.cc
|
| @@ -331,7 +331,7 @@ TEST_F(FileUtilTest, NormalizeFilePathReparsePoints) {
|
| // TEMP can have a lower case drive letter.
|
| string16 temp_base_a = base_a.value();
|
| ASSERT_FALSE(temp_base_a.empty());
|
| - *temp_base_a.begin() = base::ToUpperASCII(*temp_base_a.begin());
|
| + *temp_base_a.begin() = ToUpperASCII(*temp_base_a.begin());
|
| base_a = FilePath(temp_base_a);
|
| #endif
|
| ASSERT_TRUE(CreateDirectory(base_a));
|
| @@ -537,8 +537,8 @@ TEST_F(FileUtilTest, CreateTemporaryFileInDirLongPathTest) {
|
| // network file systems. E.g. AFS).
|
| FilePath access_test_dir = long_test_dir.Append(kTestSubDirName);
|
| ASSERT_TRUE(CreateDirectory(access_test_dir));
|
| - base::FilePermissionRestorer long_test_dir_restorer(long_test_dir);
|
| - ASSERT_TRUE(base::MakeFileUnreadable(long_test_dir));
|
| + FilePermissionRestorer long_test_dir_restorer(long_test_dir);
|
| + ASSERT_TRUE(MakeFileUnreadable(long_test_dir));
|
|
|
| // Use the short form of the directory to create a temporary filename.
|
| ASSERT_TRUE(CreateTemporaryFileInDir(
|
| @@ -2101,7 +2101,7 @@ TEST_F(FileUtilTest, ReadFileToString) {
|
| EXPECT_EQ(0u, data.length());
|
|
|
| // Delete test file.
|
| - EXPECT_TRUE(base::DeleteFile(file_path, false));
|
| + EXPECT_TRUE(DeleteFile(file_path, false));
|
|
|
| data = "temp";
|
| EXPECT_FALSE(ReadFileToString(file_path, &data));
|
| @@ -2235,24 +2235,17 @@ TEST_F(VerifyPathControlledByUserTest, BadPaths) {
|
| .AppendASCII("not")
|
| .AppendASCII("exist");
|
| EXPECT_FALSE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, does_not_exist, uid_, ok_gids_));
|
| + VerifyPathControlledByUser(base_dir_, does_not_exist, uid_, ok_gids_));
|
|
|
| // |base| not a subpath of |path|.
|
| - EXPECT_FALSE(
|
| - base::VerifyPathControlledByUser(
|
| - sub_dir_, base_dir_, uid_, ok_gids_));
|
| + EXPECT_FALSE(VerifyPathControlledByUser(sub_dir_, base_dir_, uid_, ok_gids_));
|
|
|
| // An empty base path will fail to be a prefix for any path.
|
| FilePath empty;
|
| - EXPECT_FALSE(
|
| - base::VerifyPathControlledByUser(
|
| - empty, base_dir_, uid_, ok_gids_));
|
| + EXPECT_FALSE(VerifyPathControlledByUser(empty, base_dir_, uid_, ok_gids_));
|
|
|
| // Finding that a bad call fails proves nothing unless a good call succeeds.
|
| - EXPECT_TRUE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, sub_dir_, uid_, ok_gids_));
|
| + EXPECT_TRUE(VerifyPathControlledByUser(base_dir_, sub_dir_, uid_, ok_gids_));
|
| }
|
|
|
| TEST_F(VerifyPathControlledByUserTest, Symlinks) {
|
| @@ -2264,11 +2257,9 @@ TEST_F(VerifyPathControlledByUserTest, Symlinks) {
|
| << "Failed to create symlink.";
|
|
|
| EXPECT_FALSE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, file_link, uid_, ok_gids_));
|
| + VerifyPathControlledByUser(base_dir_, file_link, uid_, ok_gids_));
|
| EXPECT_FALSE(
|
| - base::VerifyPathControlledByUser(
|
| - file_link, file_link, uid_, ok_gids_));
|
| + VerifyPathControlledByUser(file_link, file_link, uid_, ok_gids_));
|
|
|
| // Symlink from one directory to another within the path.
|
| FilePath link_to_sub_dir = base_dir_.AppendASCII("link_to_sub_dir");
|
| @@ -2278,18 +2269,15 @@ TEST_F(VerifyPathControlledByUserTest, Symlinks) {
|
| FilePath file_path_with_link = link_to_sub_dir.AppendASCII("file.txt");
|
| ASSERT_TRUE(PathExists(file_path_with_link));
|
|
|
| - EXPECT_FALSE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, file_path_with_link, uid_, ok_gids_));
|
| + EXPECT_FALSE(VerifyPathControlledByUser(base_dir_, file_path_with_link, uid_,
|
| + ok_gids_));
|
|
|
| - EXPECT_FALSE(
|
| - base::VerifyPathControlledByUser(
|
| - link_to_sub_dir, file_path_with_link, uid_, ok_gids_));
|
| + EXPECT_FALSE(VerifyPathControlledByUser(link_to_sub_dir, file_path_with_link,
|
| + uid_, ok_gids_));
|
|
|
| // Symlinks in parents of base path are allowed.
|
| - EXPECT_TRUE(
|
| - base::VerifyPathControlledByUser(
|
| - file_path_with_link, file_path_with_link, uid_, ok_gids_));
|
| + EXPECT_TRUE(VerifyPathControlledByUser(file_path_with_link,
|
| + file_path_with_link, uid_, ok_gids_));
|
| }
|
|
|
| TEST_F(VerifyPathControlledByUserTest, OwnershipChecks) {
|
| @@ -2305,37 +2293,26 @@ TEST_F(VerifyPathControlledByUserTest, OwnershipChecks) {
|
| ChangePosixFilePermissions(text_file_, 0u, S_IWOTH));
|
|
|
| // We control these paths.
|
| + EXPECT_TRUE(VerifyPathControlledByUser(base_dir_, sub_dir_, uid_, ok_gids_));
|
| EXPECT_TRUE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, sub_dir_, uid_, ok_gids_));
|
| - EXPECT_TRUE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, text_file_, uid_, ok_gids_));
|
| - EXPECT_TRUE(
|
| - base::VerifyPathControlledByUser(
|
| - sub_dir_, text_file_, uid_, ok_gids_));
|
| + VerifyPathControlledByUser(base_dir_, text_file_, uid_, ok_gids_));
|
| + EXPECT_TRUE(VerifyPathControlledByUser(sub_dir_, text_file_, uid_, ok_gids_));
|
|
|
| // Another user does not control these paths.
|
| EXPECT_FALSE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, sub_dir_, bad_uid, ok_gids_));
|
| + VerifyPathControlledByUser(base_dir_, sub_dir_, bad_uid, ok_gids_));
|
| EXPECT_FALSE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, text_file_, bad_uid, ok_gids_));
|
| + VerifyPathControlledByUser(base_dir_, text_file_, bad_uid, ok_gids_));
|
| EXPECT_FALSE(
|
| - base::VerifyPathControlledByUser(
|
| - sub_dir_, text_file_, bad_uid, ok_gids_));
|
| + VerifyPathControlledByUser(sub_dir_, text_file_, bad_uid, ok_gids_));
|
|
|
| // Another group does not control the paths.
|
| EXPECT_FALSE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, sub_dir_, uid_, bad_gids_));
|
| + VerifyPathControlledByUser(base_dir_, sub_dir_, uid_, bad_gids_));
|
| EXPECT_FALSE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, text_file_, uid_, bad_gids_));
|
| + VerifyPathControlledByUser(base_dir_, text_file_, uid_, bad_gids_));
|
| EXPECT_FALSE(
|
| - base::VerifyPathControlledByUser(
|
| - sub_dir_, text_file_, uid_, bad_gids_));
|
| + VerifyPathControlledByUser(sub_dir_, text_file_, uid_, bad_gids_));
|
| }
|
|
|
| TEST_F(VerifyPathControlledByUserTest, GroupWriteTest) {
|
| @@ -2348,68 +2325,41 @@ TEST_F(VerifyPathControlledByUserTest, GroupWriteTest) {
|
| ChangePosixFilePermissions(text_file_, 0u, S_IWOTH|S_IWGRP));
|
|
|
| // Any group is okay because the path is not group-writable.
|
| + EXPECT_TRUE(VerifyPathControlledByUser(base_dir_, sub_dir_, uid_, ok_gids_));
|
| EXPECT_TRUE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, sub_dir_, uid_, ok_gids_));
|
| - EXPECT_TRUE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, text_file_, uid_, ok_gids_));
|
| - EXPECT_TRUE(
|
| - base::VerifyPathControlledByUser(
|
| - sub_dir_, text_file_, uid_, ok_gids_));
|
| + VerifyPathControlledByUser(base_dir_, text_file_, uid_, ok_gids_));
|
| + EXPECT_TRUE(VerifyPathControlledByUser(sub_dir_, text_file_, uid_, ok_gids_));
|
|
|
| + EXPECT_TRUE(VerifyPathControlledByUser(base_dir_, sub_dir_, uid_, bad_gids_));
|
| EXPECT_TRUE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, sub_dir_, uid_, bad_gids_));
|
| + VerifyPathControlledByUser(base_dir_, text_file_, uid_, bad_gids_));
|
| EXPECT_TRUE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, text_file_, uid_, bad_gids_));
|
| - EXPECT_TRUE(
|
| - base::VerifyPathControlledByUser(
|
| - sub_dir_, text_file_, uid_, bad_gids_));
|
| + VerifyPathControlledByUser(sub_dir_, text_file_, uid_, bad_gids_));
|
|
|
| // No group is okay, because we don't check the group
|
| // if no group can write.
|
| std::set<gid_t> no_gids; // Empty set of gids.
|
| - EXPECT_TRUE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, sub_dir_, uid_, no_gids));
|
| - EXPECT_TRUE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, text_file_, uid_, no_gids));
|
| - EXPECT_TRUE(
|
| - base::VerifyPathControlledByUser(
|
| - sub_dir_, text_file_, uid_, no_gids));
|
| -
|
| + EXPECT_TRUE(VerifyPathControlledByUser(base_dir_, sub_dir_, uid_, no_gids));
|
| + EXPECT_TRUE(VerifyPathControlledByUser(base_dir_, text_file_, uid_, no_gids));
|
| + EXPECT_TRUE(VerifyPathControlledByUser(sub_dir_, text_file_, uid_, no_gids));
|
|
|
| // Make all files and directories writable by their group.
|
| - ASSERT_NO_FATAL_FAILURE(
|
| - ChangePosixFilePermissions(base_dir_, S_IWGRP, 0u));
|
| - ASSERT_NO_FATAL_FAILURE(
|
| - ChangePosixFilePermissions(sub_dir_, S_IWGRP, 0u));
|
| - ASSERT_NO_FATAL_FAILURE(
|
| - ChangePosixFilePermissions(text_file_, S_IWGRP, 0u));
|
| + ASSERT_NO_FATAL_FAILURE(ChangePosixFilePermissions(base_dir_, S_IWGRP, 0u));
|
| + ASSERT_NO_FATAL_FAILURE(ChangePosixFilePermissions(sub_dir_, S_IWGRP, 0u));
|
| + ASSERT_NO_FATAL_FAILURE(ChangePosixFilePermissions(text_file_, S_IWGRP, 0u));
|
|
|
| // Now |ok_gids_| works, but |bad_gids_| fails.
|
| + EXPECT_TRUE(VerifyPathControlledByUser(base_dir_, sub_dir_, uid_, ok_gids_));
|
| EXPECT_TRUE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, sub_dir_, uid_, ok_gids_));
|
| - EXPECT_TRUE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, text_file_, uid_, ok_gids_));
|
| - EXPECT_TRUE(
|
| - base::VerifyPathControlledByUser(
|
| - sub_dir_, text_file_, uid_, ok_gids_));
|
| + VerifyPathControlledByUser(base_dir_, text_file_, uid_, ok_gids_));
|
| + EXPECT_TRUE(VerifyPathControlledByUser(sub_dir_, text_file_, uid_, ok_gids_));
|
|
|
| EXPECT_FALSE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, sub_dir_, uid_, bad_gids_));
|
| + VerifyPathControlledByUser(base_dir_, sub_dir_, uid_, bad_gids_));
|
| EXPECT_FALSE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, text_file_, uid_, bad_gids_));
|
| + VerifyPathControlledByUser(base_dir_, text_file_, uid_, bad_gids_));
|
| EXPECT_FALSE(
|
| - base::VerifyPathControlledByUser(
|
| - sub_dir_, text_file_, uid_, bad_gids_));
|
| + VerifyPathControlledByUser(sub_dir_, text_file_, uid_, bad_gids_));
|
|
|
| // Because any group in the group set is allowed,
|
| // the union of good and bad gids passes.
|
| @@ -2421,14 +2371,11 @@ TEST_F(VerifyPathControlledByUserTest, GroupWriteTest) {
|
| std::inserter(multiple_gids, multiple_gids.begin()));
|
|
|
| EXPECT_TRUE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, sub_dir_, uid_, multiple_gids));
|
| + VerifyPathControlledByUser(base_dir_, sub_dir_, uid_, multiple_gids));
|
| EXPECT_TRUE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, text_file_, uid_, multiple_gids));
|
| + VerifyPathControlledByUser(base_dir_, text_file_, uid_, multiple_gids));
|
| EXPECT_TRUE(
|
| - base::VerifyPathControlledByUser(
|
| - sub_dir_, text_file_, uid_, multiple_gids));
|
| + VerifyPathControlledByUser(sub_dir_, text_file_, uid_, multiple_gids));
|
| }
|
|
|
| TEST_F(VerifyPathControlledByUserTest, WriteBitChecks) {
|
| @@ -2441,94 +2388,63 @@ TEST_F(VerifyPathControlledByUserTest, WriteBitChecks) {
|
| ChangePosixFilePermissions(text_file_, 0u, S_IWOTH));
|
|
|
| // Initialy, we control all parts of the path.
|
| + EXPECT_TRUE(VerifyPathControlledByUser(base_dir_, sub_dir_, uid_, ok_gids_));
|
| EXPECT_TRUE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, sub_dir_, uid_, ok_gids_));
|
| - EXPECT_TRUE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, text_file_, uid_, ok_gids_));
|
| - EXPECT_TRUE(
|
| - base::VerifyPathControlledByUser(
|
| - sub_dir_, text_file_, uid_, ok_gids_));
|
| + VerifyPathControlledByUser(base_dir_, text_file_, uid_, ok_gids_));
|
| + EXPECT_TRUE(VerifyPathControlledByUser(sub_dir_, text_file_, uid_, ok_gids_));
|
|
|
| // Make base_dir_ world-writable.
|
| ASSERT_NO_FATAL_FAILURE(
|
| ChangePosixFilePermissions(base_dir_, S_IWOTH, 0u));
|
| + EXPECT_FALSE(VerifyPathControlledByUser(base_dir_, sub_dir_, uid_, ok_gids_));
|
| EXPECT_FALSE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, sub_dir_, uid_, ok_gids_));
|
| - EXPECT_FALSE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, text_file_, uid_, ok_gids_));
|
| - EXPECT_TRUE(
|
| - base::VerifyPathControlledByUser(
|
| - sub_dir_, text_file_, uid_, ok_gids_));
|
| + VerifyPathControlledByUser(base_dir_, text_file_, uid_, ok_gids_));
|
| + EXPECT_TRUE(VerifyPathControlledByUser(sub_dir_, text_file_, uid_, ok_gids_));
|
|
|
| // Make sub_dir_ world writable.
|
| ASSERT_NO_FATAL_FAILURE(
|
| ChangePosixFilePermissions(sub_dir_, S_IWOTH, 0u));
|
| + EXPECT_FALSE(VerifyPathControlledByUser(base_dir_, sub_dir_, uid_, ok_gids_));
|
| EXPECT_FALSE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, sub_dir_, uid_, ok_gids_));
|
| + VerifyPathControlledByUser(base_dir_, text_file_, uid_, ok_gids_));
|
| EXPECT_FALSE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, text_file_, uid_, ok_gids_));
|
| - EXPECT_FALSE(
|
| - base::VerifyPathControlledByUser(
|
| - sub_dir_, text_file_, uid_, ok_gids_));
|
| + VerifyPathControlledByUser(sub_dir_, text_file_, uid_, ok_gids_));
|
|
|
| // Make text_file_ world writable.
|
| ASSERT_NO_FATAL_FAILURE(
|
| ChangePosixFilePermissions(text_file_, S_IWOTH, 0u));
|
| + EXPECT_FALSE(VerifyPathControlledByUser(base_dir_, sub_dir_, uid_, ok_gids_));
|
| EXPECT_FALSE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, sub_dir_, uid_, ok_gids_));
|
| - EXPECT_FALSE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, text_file_, uid_, ok_gids_));
|
| + VerifyPathControlledByUser(base_dir_, text_file_, uid_, ok_gids_));
|
| EXPECT_FALSE(
|
| - base::VerifyPathControlledByUser(
|
| - sub_dir_, text_file_, uid_, ok_gids_));
|
| + VerifyPathControlledByUser(sub_dir_, text_file_, uid_, ok_gids_));
|
|
|
| // Make sub_dir_ non-world writable.
|
| ASSERT_NO_FATAL_FAILURE(
|
| ChangePosixFilePermissions(sub_dir_, 0u, S_IWOTH));
|
| + EXPECT_FALSE(VerifyPathControlledByUser(base_dir_, sub_dir_, uid_, ok_gids_));
|
| EXPECT_FALSE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, sub_dir_, uid_, ok_gids_));
|
| + VerifyPathControlledByUser(base_dir_, text_file_, uid_, ok_gids_));
|
| EXPECT_FALSE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, text_file_, uid_, ok_gids_));
|
| - EXPECT_FALSE(
|
| - base::VerifyPathControlledByUser(
|
| - sub_dir_, text_file_, uid_, ok_gids_));
|
| + VerifyPathControlledByUser(sub_dir_, text_file_, uid_, ok_gids_));
|
|
|
| // Make base_dir_ non-world-writable.
|
| ASSERT_NO_FATAL_FAILURE(
|
| ChangePosixFilePermissions(base_dir_, 0u, S_IWOTH));
|
| - EXPECT_TRUE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, sub_dir_, uid_, ok_gids_));
|
| + EXPECT_TRUE(VerifyPathControlledByUser(base_dir_, sub_dir_, uid_, ok_gids_));
|
| EXPECT_FALSE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, text_file_, uid_, ok_gids_));
|
| + VerifyPathControlledByUser(base_dir_, text_file_, uid_, ok_gids_));
|
| EXPECT_FALSE(
|
| - base::VerifyPathControlledByUser(
|
| - sub_dir_, text_file_, uid_, ok_gids_));
|
| + VerifyPathControlledByUser(sub_dir_, text_file_, uid_, ok_gids_));
|
|
|
| // Back to the initial state: Nothing is writable, so every path
|
| // should pass.
|
| ASSERT_NO_FATAL_FAILURE(
|
| ChangePosixFilePermissions(text_file_, 0u, S_IWOTH));
|
| + EXPECT_TRUE(VerifyPathControlledByUser(base_dir_, sub_dir_, uid_, ok_gids_));
|
| EXPECT_TRUE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, sub_dir_, uid_, ok_gids_));
|
| - EXPECT_TRUE(
|
| - base::VerifyPathControlledByUser(
|
| - base_dir_, text_file_, uid_, ok_gids_));
|
| - EXPECT_TRUE(
|
| - base::VerifyPathControlledByUser(
|
| - sub_dir_, text_file_, uid_, ok_gids_));
|
| + VerifyPathControlledByUser(base_dir_, text_file_, uid_, ok_gids_));
|
| + EXPECT_TRUE(VerifyPathControlledByUser(sub_dir_, text_file_, uid_, ok_gids_));
|
| }
|
|
|
| #if defined(OS_ANDROID)
|
| @@ -2545,7 +2461,7 @@ TEST_F(FileUtilTest, ValidContentUriTest) {
|
|
|
| // Insert the image into MediaStore. MediaStore will do some conversions, and
|
| // return the content URI.
|
| - FilePath path = base::InsertImageIntoMediaStore(image_file);
|
| + FilePath path = InsertImageIntoMediaStore(image_file);
|
| EXPECT_TRUE(path.IsContentUri());
|
| EXPECT_TRUE(PathExists(path));
|
| // The file size may not equal to the input image as MediaStore may convert
|
| @@ -2581,10 +2497,8 @@ TEST(ScopedFD, ScopedFDDoesClose) {
|
| char c = 0;
|
| ASSERT_EQ(0, pipe(fds));
|
| const int write_end = fds[1];
|
| - base::ScopedFD read_end_closer(fds[0]);
|
| - {
|
| - base::ScopedFD write_end_closer(fds[1]);
|
| - }
|
| + ScopedFD read_end_closer(fds[0]);
|
| + { ScopedFD write_end_closer(fds[1]); }
|
| // This is the only thread. This file descriptor should no longer be valid.
|
| int ret = close(write_end);
|
| EXPECT_EQ(-1, ret);
|
| @@ -2597,14 +2511,14 @@ TEST(ScopedFD, ScopedFDDoesClose) {
|
|
|
| #if defined(GTEST_HAS_DEATH_TEST)
|
| void CloseWithScopedFD(int fd) {
|
| - base::ScopedFD fd_closer(fd);
|
| + ScopedFD fd_closer(fd);
|
| }
|
| #endif
|
|
|
| TEST(ScopedFD, ScopedFDCrashesOnCloseFailure) {
|
| int fds[2];
|
| ASSERT_EQ(0, pipe(fds));
|
| - base::ScopedFD read_end_closer(fds[0]);
|
| + ScopedFD read_end_closer(fds[0]);
|
| EXPECT_EQ(0, IGNORE_EINTR(close(fds[1])));
|
| #if defined(GTEST_HAS_DEATH_TEST)
|
| // This is the only thread. This file descriptor should no longer be valid.
|
|
|