Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(539)

Unified Diff: webkit/fileapi/file_system_origin_database_unittest.cc

Issue 9910005: Add database recovery for FileSystemDirectoryDatabase. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webkit/fileapi/file_system_directory_database_unittest.cc ('k') | webkit/fileapi/file_system_usage_cache.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/fileapi/file_system_origin_database_unittest.cc
diff --git a/webkit/fileapi/file_system_origin_database_unittest.cc b/webkit/fileapi/file_system_origin_database_unittest.cc
index e92b814fa7dc3a80ba41099be82a7a6274a0414e..68ad6e33c2c5b348f3f9dd40f9e1b2f57c198d64 100644
--- a/webkit/fileapi/file_system_origin_database_unittest.cc
+++ b/webkit/fileapi/file_system_origin_database_unittest.cc
@@ -15,83 +15,16 @@
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/leveldatabase/src/db/filename.h"
#include "third_party/leveldatabase/src/include/leveldb/db.h"
+#include "webkit/fileapi/file_system_database_test_helper.h"
#include "webkit/fileapi/file_system_origin_database.h"
#include "webkit/fileapi/file_system_util.h"
namespace fileapi {
namespace {
-
const FilePath::CharType kFileSystemDirName[] =
FILE_PATH_LITERAL("File System");
const FilePath::CharType kOriginDatabaseName[] = FILE_PATH_LITERAL("Origins");
-
-void CorruptDatabase(const FilePath& db_path,
- leveldb::FileType type,
- ptrdiff_t offset,
- size_t size) {
- file_util::FileEnumerator file_enum(
- db_path, false /* recursive */,
- static_cast<file_util::FileEnumerator::FileType>(
- file_util::FileEnumerator::DIRECTORIES |
- file_util::FileEnumerator::FILES));
- FilePath file_path;
- FilePath picked_file_path;
- uint64 picked_file_number = kuint64max;
-
- while (!(file_path = file_enum.Next()).empty()) {
- uint64 number = kuint64max;
- leveldb::FileType file_type;
- EXPECT_TRUE(leveldb::ParseFileName(FilePathToString(file_path.BaseName()),
- &number, &file_type));
- if (file_type == type &&
- (picked_file_number == kuint64max || picked_file_number < number)) {
- picked_file_path = file_path;
- picked_file_number = number;
- }
- }
-
- EXPECT_FALSE(picked_file_path.empty());
- EXPECT_NE(kuint64max, picked_file_number);
-
- bool created = true;
- base::PlatformFileError error = base::PLATFORM_FILE_ERROR_FAILED;
- base::PlatformFile file =
- CreatePlatformFile(picked_file_path,
- base::PLATFORM_FILE_OPEN |
- base::PLATFORM_FILE_READ |
- base::PLATFORM_FILE_WRITE,
- &created, &error);
- EXPECT_EQ(base::PLATFORM_FILE_OK, error);
- EXPECT_FALSE(created);
-
- base::PlatformFileInfo file_info;
- EXPECT_TRUE(base::GetPlatformFileInfo(file, &file_info));
- if (offset < 0)
- offset += file_info.size;
- EXPECT_GE(offset, 0);
- EXPECT_LE(offset, file_info.size);
-
- size = std::min(size, static_cast<size_t>(file_info.size - offset));
-
- std::vector<char> buf(size);
- int read_size = base::ReadPlatformFile(file, offset,
- vector_as_array(&buf), buf.size());
- EXPECT_LT(0, read_size);
- EXPECT_GE(buf.size(), static_cast<size_t>(read_size));
- buf.resize(read_size);
-
- std::transform(buf.begin(), buf.end(), buf.begin(),
- std::logical_not<char>());
-
- int written_size = base::WritePlatformFile(file, offset,
- vector_as_array(&buf), buf.size());
- EXPECT_GT(written_size, 0);
- EXPECT_EQ(buf.size(), static_cast<size_t>(written_size));
-
- base::ClosePlatformFile(file);
-}
-
} // namespace
TEST(FileSystemOriginDatabaseTest, BasicTest) {
« no previous file with comments | « webkit/fileapi/file_system_directory_database_unittest.cc ('k') | webkit/fileapi/file_system_usage_cache.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698