diff options
author | kinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-13 11:39:18 +0000 |
---|---|---|
committer | kinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-13 11:39:18 +0000 |
commit | 98a15b108d3e4c8321a6efbf807b060f28fb4db3 (patch) | |
tree | ca788cb88445d4752f2fad92636c3d98ae630ff5 /webkit | |
parent | eecb70f89ce0302c169267beaefcdf7d63e45f65 (diff) | |
download | chromium_src-98a15b108d3e4c8321a6efbf807b060f28fb4db3.zip chromium_src-98a15b108d3e4c8321a6efbf807b060f28fb4db3.tar.gz chromium_src-98a15b108d3e4c8321a6efbf807b060f28fb4db3.tar.bz2 |
Invalid FileSystemURL should not be given to FileUtils
(In usual call path it errors out before it calls into FileUtil)
BUG=none
TEST=IsolatedFileUtilTest.UnregisteredPathsTest
Review URL: https://chromiumcodereview.appspot.com/10825316
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@151253 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r-- | webkit/fileapi/isolated_file_util.cc | 4 | ||||
-rw-r--r-- | webkit/fileapi/isolated_file_util_unittest.cc | 13 |
2 files changed, 10 insertions, 7 deletions
diff --git a/webkit/fileapi/isolated_file_util.cc b/webkit/fileapi/isolated_file_util.cc index d618978..24ff4ab 100644 --- a/webkit/fileapi/isolated_file_util.cc +++ b/webkit/fileapi/isolated_file_util.cc @@ -118,6 +118,7 @@ PlatformFileError IsolatedFileUtil::GetLocalFilePath( const FileSystemURL& url, FilePath* local_file_path) { DCHECK(local_file_path); + DCHECK(url.is_valid()); if (url.path().empty()) { // Root direcory case, which should not be accessed. return base::PLATFORM_FILE_ERROR_ACCESS_DENIED; @@ -137,6 +138,7 @@ PlatformFileError DraggedFileUtil::GetFileInfo( FilePath* platform_path) { DCHECK(file_info); std::string filesystem_id; + DCHECK(url.is_valid()); if (url.path().empty()) { // The root directory case. // For now we leave three time fields (modified/accessed/creation time) @@ -164,6 +166,7 @@ DraggedFileUtil::CreateFileEnumerator( FileSystemOperationContext* context, const FileSystemURL& root, bool recursive) { + DCHECK(root.is_valid()); if (!root.path().empty()) return NativeFileUtil::CreateFileEnumerator(root.path(), recursive); @@ -179,6 +182,7 @@ DraggedFileUtil::CreateFileEnumerator( bool DraggedFileUtil::IsDirectoryEmpty( FileSystemOperationContext* context, const FileSystemURL& url) { + DCHECK(url.is_valid()); if (url.path().empty()) { // The root directory case. std::vector<FileInfo> toplevels; diff --git a/webkit/fileapi/isolated_file_util_unittest.cc b/webkit/fileapi/isolated_file_util_unittest.cc index d3e6303..03953c8 100644 --- a/webkit/fileapi/isolated_file_util_unittest.cc +++ b/webkit/fileapi/isolated_file_util_unittest.cc @@ -20,6 +20,7 @@ #include "webkit/fileapi/file_util_helper.h" #include "webkit/fileapi/isolated_context.h" #include "webkit/fileapi/isolated_file_util.h" +#include "webkit/fileapi/local_file_system_operation.h" #include "webkit/fileapi/local_file_system_test_helper.h" #include "webkit/fileapi/local_file_util.h" #include "webkit/fileapi/mock_file_system_options.h" @@ -299,13 +300,11 @@ TEST_F(IsolatedFileUtilTest, UnregisteredPathsTest) { const test::TestCaseRecord& test_case = kUnregisteredCases[i]; FileSystemURL url = GetFileSystemURL(FilePath(test_case.path)); - // This should fail as the paths in kUnregisteredCases are not included - // in the dropped files (i.e. the regular test cases). - base::PlatformFileInfo info; - FilePath platform_path; - FileSystemOperationContext context(file_system_context()); - ASSERT_EQ(base::PLATFORM_FILE_ERROR_NOT_FOUND, - file_util()->GetFileInfo(&context, url, &info, &platform_path)); + // We should not be able to get the valid URL for unregistered files. + ASSERT_FALSE(url.is_valid()); + + // We should not be able to create a new operation for an invalid URL. + ASSERT_EQ(NULL, file_system_context()->CreateFileSystemOperation(url)); } } |