summaryrefslogtreecommitdiffstats
path: root/base
diff options
context:
space:
mode:
authorcpu@chromium.org <cpu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-29 22:59:22 +0000
committercpu@chromium.org <cpu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-29 22:59:22 +0000
commit23b59d264f46c72cd52407f7a028b0eea32b78d6 (patch)
tree8618bdff218ea0b7348d382f952eba9fffeb3550 /base
parentb2414ca78f43c38aa817f58ddc8247d4c1769e5d (diff)
downloadchromium_src-23b59d264f46c72cd52407f7a028b0eea32b78d6.zip
chromium_src-23b59d264f46c72cd52407f7a028b0eea32b78d6.tar.gz
chromium_src-23b59d264f46c72cd52407f7a028b0eea32b78d6.tar.bz2
GetPlatformFileInfo was always never returning directory
- Because relational operators have higher precedence than bitwise operators BUG=none TEST=unittest included Review URL: http://codereview.chromium.org/9004052 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@115998 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base')
-rw-r--r--base/file_util_unittest.cc20
-rw-r--r--base/platform_file_win.cc2
2 files changed, 20 insertions, 2 deletions
diff --git a/base/file_util_unittest.cc b/base/file_util_unittest.cc
index a9f9377..4cd6f03 100644
--- a/base/file_util_unittest.cc
+++ b/base/file_util_unittest.cc
@@ -581,6 +581,25 @@ TEST_F(FileUtilTest, NormalizeFilePathReparsePoints) {
&normalized_path));
}
+TEST_F(FileUtilTest, GetPlatformFileInfoForDirectory) {
+ FilePath empty_dir = temp_dir_.path().Append(FPL("gpfi_test"));
+ ASSERT_TRUE(file_util::CreateDirectory(empty_dir));
+ base::win::ScopedHandle dir(
+ ::CreateFile(empty_dir.value().c_str(),
+ FILE_ALL_ACCESS,
+ FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
+ NULL,
+ OPEN_EXISTING,
+ FILE_FLAG_BACKUP_SEMANTICS, // Needed to open a directory.
+ NULL));
+ ASSERT_TRUE(dir.IsValid());
+ base::PlatformFileInfo info;
+ EXPECT_TRUE(base::GetPlatformFileInfo(dir.Get(), &info));
+ EXPECT_TRUE(info.is_directory);
+ EXPECT_FALSE(info.is_symbolic_link);
+ EXPECT_EQ(0, info.size);
+}
+
#endif // defined(OS_WIN)
#if defined(OS_POSIX)
@@ -1612,7 +1631,6 @@ TEST_F(FileUtilTest, DetectDirectoryTest) {
EXPECT_TRUE(file_util::CreateDirectory(test_root));
EXPECT_TRUE(file_util::PathExists(test_root));
EXPECT_TRUE(file_util::DirectoryExists(test_root));
-
// Check a file
FilePath test_path =
test_root.Append(FILE_PATH_LITERAL("foobar.txt"));
diff --git a/base/platform_file_win.cc b/base/platform_file_win.cc
index d3755aa..0b68962 100644
--- a/base/platform_file_win.cc
+++ b/base/platform_file_win.cc
@@ -216,7 +216,7 @@ bool GetPlatformFileInfo(PlatformFile file, PlatformFileInfo* info) {
size.LowPart = file_info.nFileSizeLow;
info->size = size.QuadPart;
info->is_directory =
- file_info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY != 0;
+ (file_info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0;
info->is_symbolic_link = false; // Windows doesn't have symbolic links.
info->last_modified = base::Time::FromFileTime(file_info.ftLastWriteTime);
info->last_accessed = base::Time::FromFileTime(file_info.ftLastAccessTime);