diff options
author | adamk@chromium.org <adamk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-25 21:19:29 +0000 |
---|---|---|
committer | adamk@chromium.org <adamk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-25 21:19:29 +0000 |
commit | 525ea6d7060f2ac5a4f8ad5c94f4d312f16925f6 (patch) | |
tree | 404d7267b2c181aff5cb69a1daaa0f79f315c5ec /webkit/fileapi | |
parent | 636cb26c2495b180e8a861df5d94d6b0ac8f32ba (diff) | |
download | chromium_src-525ea6d7060f2ac5a4f8ad5c94f4d312f16925f6.zip chromium_src-525ea6d7060f2ac5a4f8ad5c94f4d312f16925f6.tar.gz chromium_src-525ea6d7060f2ac5a4f8ad5c94f4d312f16925f6.tar.bz2 |
Properly return TYPE_MISMATCH_ERR for DirectoryExists/FileExists
operation when the target isn't a directory/file, respectively.
This matches what the File API spec says about error codes:
http://dev.w3.org/2009/dap/file-system/file-dir-sys.html#error-code-descriptions
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6591013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76098 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/fileapi')
-rw-r--r-- | webkit/fileapi/file_system_operation.cc | 4 | ||||
-rw-r--r-- | webkit/fileapi/file_system_operation_unittest.cc | 14 |
2 files changed, 16 insertions, 2 deletions
diff --git a/webkit/fileapi/file_system_operation.cc b/webkit/fileapi/file_system_operation.cc index 5e66453..b01f4d5 100644 --- a/webkit/fileapi/file_system_operation.cc +++ b/webkit/fileapi/file_system_operation.cc @@ -326,7 +326,7 @@ void FileSystemOperation::DidDirectoryExists( if (file_info.is_directory) dispatcher_->DidSucceed(); else - dispatcher_->DidFail(base::PLATFORM_FILE_ERROR_FAILED); + dispatcher_->DidFail(base::PLATFORM_FILE_ERROR_NOT_A_DIRECTORY); } else { dispatcher_->DidFail(rv); } @@ -338,7 +338,7 @@ void FileSystemOperation::DidFileExists( const base::PlatformFileInfo& file_info) { if (rv == base::PLATFORM_FILE_OK) { if (file_info.is_directory) - dispatcher_->DidFail(base::PLATFORM_FILE_ERROR_FAILED); + dispatcher_->DidFail(base::PLATFORM_FILE_ERROR_NOT_A_FILE); else dispatcher_->DidSucceed(); } else { diff --git a/webkit/fileapi/file_system_operation_unittest.cc b/webkit/fileapi/file_system_operation_unittest.cc index b535676..7e3a177 100644 --- a/webkit/fileapi/file_system_operation_unittest.cc +++ b/webkit/fileapi/file_system_operation_unittest.cc @@ -570,6 +570,20 @@ TEST_F(FileSystemOperationTest, TestExistsAndMetadataSuccess) { EXPECT_FALSE(info().is_directory); } +TEST_F(FileSystemOperationTest, TestTypeMismatchErrors) { + ScopedTempDir dir; + ASSERT_TRUE(dir.CreateUniqueTempDir()); + operation()->FileExists(dir.path()); + MessageLoop::current()->RunAllPending(); + EXPECT_EQ(base::PLATFORM_FILE_ERROR_NOT_A_FILE, status()); + + FilePath file; + ASSERT_TRUE(file_util::CreateTemporaryFileInDir(dir.path(), &file)); + operation()->DirectoryExists(file); + MessageLoop::current()->RunAllPending(); + EXPECT_EQ(base::PLATFORM_FILE_ERROR_NOT_A_DIRECTORY, status()); +} + TEST_F(FileSystemOperationTest, TestReadDirFailure) { // Path doesn't exists FilePath nonexisting_dir_path(base_.path().Append( |