diff options
author | vandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-12-11 21:12:29 +0000 |
---|---|---|
committer | vandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-12-11 21:12:29 +0000 |
commit | 9fa8c2f5e9581c2e521fd28aadedc4c77b9b2150 (patch) | |
tree | 9d99023192c738da45988592fa69eaf52a02a7b5 /base | |
parent | 4f792a2d49c6a64ecde1f96d739b17c0f4765764 (diff) | |
download | chromium_src-9fa8c2f5e9581c2e521fd28aadedc4c77b9b2150.zip chromium_src-9fa8c2f5e9581c2e521fd28aadedc4c77b9b2150.tar.gz chromium_src-9fa8c2f5e9581c2e521fd28aadedc4c77b9b2150.tar.bz2 |
Improve unit tests to verify that directories are listed before files in file:/// urls.
And fix current regression.
BUG=28420
TEST=improved unit tests
Review URL: http://codereview.chromium.org/492015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34382 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base')
-rw-r--r-- | base/file_util.h | 3 | ||||
-rw-r--r-- | base/file_util_posix.cc | 4 | ||||
-rw-r--r-- | base/file_util_win.cc | 4 |
3 files changed, 11 insertions, 0 deletions
diff --git a/base/file_util.h b/base/file_util.h index 7ec1dce..9eb1729 100644 --- a/base/file_util.h +++ b/base/file_util.h @@ -431,6 +431,9 @@ class FileEnumerator { // Write the file info into |info|. void GetFindInfo(FindInfo* info); + // Looks inside a FindInfo and determines if it's a directory. + static bool IsDirectory(const FindInfo& info); + private: // Returns true if the given path should be skipped in enumeration. bool ShouldSkip(const FilePath& path); diff --git a/base/file_util_posix.cc b/base/file_util_posix.cc index ed5abcc..cdf7be9 100644 --- a/base/file_util_posix.cc +++ b/base/file_util_posix.cc @@ -583,6 +583,10 @@ void FileEnumerator::GetFindInfo(FindInfo* info) { info->filename.assign(cur_entry->filename.value()); } +bool FileEnumerator::IsDirectory(const FindInfo& info) { + return S_ISDIR(info.stat.st_mode); +} + FilePath FileEnumerator::Next() { ++current_directory_entry_; diff --git a/base/file_util_win.cc b/base/file_util_win.cc index 9d29d80..6dfc049 100644 --- a/base/file_util_win.cc +++ b/base/file_util_win.cc @@ -727,6 +727,10 @@ void FileEnumerator::GetFindInfo(FindInfo* info) { memcpy(info, &find_data_, sizeof(*info)); } +bool FileEnumerator::IsDirectory(const FindInfo& info) { + return (info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0; +} + FilePath FileEnumerator::Next() { if (!is_in_find_op_) { if (pending_paths_.empty()) |