| Index: native_client_sdk/src/tests/nacl_io_test/fake_ppapi/fake_pepper_interface_html5_fs.cc
|
| diff --git a/native_client_sdk/src/tests/nacl_io_test/fake_ppapi/fake_pepper_interface_html5_fs.cc b/native_client_sdk/src/tests/nacl_io_test/fake_ppapi/fake_pepper_interface_html5_fs.cc
|
| index 37e9158f94da7c5b055f45085946e2f473ef2943..5e01f2b57e60040d6b5e104974e119b6f2aeebfb 100644
|
| --- a/native_client_sdk/src/tests/nacl_io_test/fake_ppapi/fake_pepper_interface_html5_fs.cc
|
| +++ b/native_client_sdk/src/tests/nacl_io_test/fake_ppapi/fake_pepper_interface_html5_fs.cc
|
| @@ -26,16 +26,6 @@ class FakeInstanceResource : public FakeResource {
|
| FakeHtml5FsFilesystem* filesystem_template; // Weak reference.
|
| };
|
|
|
| -class FakeFileSystemResource : public FakeResource {
|
| - public:
|
| - FakeFileSystemResource() : filesystem(NULL), opened(false) {}
|
| - ~FakeFileSystemResource() { delete filesystem; }
|
| - static const char* classname() { return "FakeFileSystemResource"; }
|
| -
|
| - FakeHtml5FsFilesystem* filesystem; // Owned.
|
| - bool opened;
|
| -};
|
| -
|
| } // namespace
|
|
|
| FakeHtml5FsNode::FakeHtml5FsNode(const PP_FileInfo& info) : info_(info) {}
|
| @@ -253,205 +243,6 @@ FakeHtml5FsFilesystem::Path FakeHtml5FsFilesystem::GetParentPath(
|
| return path.substr(0, last_slash);
|
| }
|
|
|
| -FakeFileRefInterface::FakeFileRefInterface(FakeCoreInterface* core_interface,
|
| - FakeVarInterface* var_interface)
|
| - : core_interface_(core_interface), var_interface_(var_interface) {}
|
| -
|
| -PP_Resource FakeFileRefInterface::Create(PP_Resource file_system,
|
| - const char* path) {
|
| - FakeFileSystemResource* file_system_resource =
|
| - core_interface_->resource_manager()->Get<FakeFileSystemResource>(
|
| - file_system);
|
| - if (file_system_resource == NULL)
|
| - return PP_ERROR_BADRESOURCE;
|
| -
|
| - if (!file_system_resource->opened)
|
| - return PP_ERROR_FAILED;
|
| -
|
| - if (path == NULL)
|
| - return PP_ERROR_FAILED;
|
| -
|
| - size_t path_len = strlen(path);
|
| - if (path_len == 0)
|
| - return PP_ERROR_FAILED;
|
| -
|
| - FakeFileRefResource* file_ref_resource = new FakeFileRefResource;
|
| - file_ref_resource->filesystem = file_system_resource->filesystem;
|
| - file_ref_resource->path = path;
|
| -
|
| - // Remove a trailing slash from the path, unless it is the root path.
|
| - if (path_len > 1 && file_ref_resource->path[path_len - 1] == '/')
|
| - file_ref_resource->path.erase(path_len - 1);
|
| -
|
| - return CREATE_RESOURCE(core_interface_->resource_manager(),
|
| - FakeFileRefResource, file_ref_resource);
|
| -}
|
| -
|
| -PP_Var FakeFileRefInterface::GetName(PP_Resource file_ref) {
|
| - FakeFileRefResource* file_ref_resource =
|
| - core_interface_->resource_manager()->Get<FakeFileRefResource>(file_ref);
|
| - if (file_ref_resource == NULL)
|
| - return PP_MakeUndefined();
|
| -
|
| - return var_interface_->VarFromUtf8(file_ref_resource->path.c_str(),
|
| - file_ref_resource->path.size());
|
| -}
|
| -
|
| -int32_t FakeFileRefInterface::MakeDirectory(PP_Resource directory_ref,
|
| - PP_Bool make_parents,
|
| - PP_CompletionCallback callback) {
|
| - FakeFileRefResource* directory_ref_resource =
|
| - core_interface_->resource_manager()->Get<FakeFileRefResource>(
|
| - directory_ref);
|
| - if (directory_ref_resource == NULL)
|
| - return PP_ERROR_BADRESOURCE;
|
| -
|
| - // TODO(binji): We don't currently use make_parents in nacl_io, so
|
| - // I won't bother handling it yet.
|
| - if (make_parents == PP_TRUE)
|
| - return PP_ERROR_FAILED;
|
| -
|
| - FakeHtml5FsFilesystem* filesystem = directory_ref_resource->filesystem;
|
| - FakeHtml5FsFilesystem::Path path = directory_ref_resource->path;
|
| -
|
| - // Pepper returns PP_ERROR_NOACCESS when trying to create the root directory,
|
| - // not PP_ERROR_FILEEXISTS, as you might expect.
|
| - if (path == "/")
|
| - return RunCompletionCallback(&callback, PP_ERROR_NOACCESS);
|
| -
|
| - FakeHtml5FsNode* node = filesystem->GetNode(path);
|
| - if (node != NULL)
|
| - return RunCompletionCallback(&callback, PP_ERROR_FILEEXISTS);
|
| -
|
| - FakeHtml5FsFilesystem::Path parent_path = filesystem->GetParentPath(path);
|
| - FakeHtml5FsNode* parent_node = filesystem->GetNode(parent_path);
|
| - if (parent_node == NULL)
|
| - return RunCompletionCallback(&callback, PP_ERROR_FILENOTFOUND);
|
| -
|
| - if (!parent_node->IsDirectory())
|
| - return RunCompletionCallback(&callback, PP_ERROR_FAILED);
|
| -
|
| - bool result = filesystem->AddDirectory(directory_ref_resource->path, NULL);
|
| - EXPECT_EQ(true, result);
|
| - return RunCompletionCallback(&callback, PP_OK);
|
| -}
|
| -
|
| -int32_t FakeFileRefInterface::Delete(PP_Resource file_ref,
|
| - PP_CompletionCallback callback) {
|
| - FakeFileRefResource* file_ref_resource =
|
| - core_interface_->resource_manager()->Get<FakeFileRefResource>(file_ref);
|
| - if (file_ref_resource == NULL)
|
| - return PP_ERROR_BADRESOURCE;
|
| -
|
| - FakeHtml5FsFilesystem* filesystem = file_ref_resource->filesystem;
|
| - FakeHtml5FsFilesystem::Path path = file_ref_resource->path;
|
| - FakeHtml5FsNode* node = filesystem->GetNode(path);
|
| - if (node == NULL)
|
| - return RunCompletionCallback(&callback, PP_ERROR_FILENOTFOUND);
|
| -
|
| - filesystem->RemoveNode(path);
|
| - return RunCompletionCallback(&callback, PP_OK);
|
| -}
|
| -
|
| -int32_t FakeFileRefInterface::Query(PP_Resource file_ref,
|
| - PP_FileInfo* info,
|
| - PP_CompletionCallback callback) {
|
| - FakeFileRefResource* file_ref_resource =
|
| - core_interface_->resource_manager()->Get<FakeFileRefResource>(file_ref);
|
| - if (file_ref_resource == NULL)
|
| - return PP_ERROR_BADRESOURCE;
|
| -
|
| - FakeHtml5FsFilesystem* filesystem = file_ref_resource->filesystem;
|
| - FakeHtml5FsFilesystem::Path path = file_ref_resource->path;
|
| - FakeHtml5FsNode* node = filesystem->GetNode(path);
|
| - if (node == NULL)
|
| - return RunCompletionCallback(&callback, PP_ERROR_FILENOTFOUND);
|
| -
|
| - node->GetInfo(info);
|
| - return RunCompletionCallback(&callback, PP_OK);
|
| -}
|
| -
|
| -int32_t FakeFileRefInterface::ReadDirectoryEntries(
|
| - PP_Resource directory_ref,
|
| - const PP_ArrayOutput& output,
|
| - PP_CompletionCallback callback) {
|
| - FakeFileRefResource* directory_ref_resource =
|
| - core_interface_->resource_manager()->Get<FakeFileRefResource>(
|
| - directory_ref);
|
| - if (directory_ref_resource == NULL)
|
| - return PP_ERROR_BADRESOURCE;
|
| -
|
| - FakeHtml5FsFilesystem* filesystem = directory_ref_resource->filesystem;
|
| - FakeHtml5FsFilesystem::Path path = directory_ref_resource->path;
|
| - FakeHtml5FsNode* node = filesystem->GetNode(path);
|
| - if (node == NULL)
|
| - return RunCompletionCallback(&callback, PP_ERROR_FILENOTFOUND);
|
| -
|
| - if (!node->IsDirectory())
|
| - return RunCompletionCallback(&callback, PP_ERROR_FAILED);
|
| -
|
| - FakeHtml5FsFilesystem::DirectoryEntries fake_dir_entries;
|
| - filesystem->GetDirectoryEntries(path, &fake_dir_entries);
|
| -
|
| - uint32_t element_count = fake_dir_entries.size();
|
| - uint32_t element_size = sizeof(fake_dir_entries[0]);
|
| - void* data_buffer =
|
| - (*output.GetDataBuffer)(output.user_data, element_count, element_size);
|
| -
|
| - if (data_buffer == NULL)
|
| - return RunCompletionCallback(&callback, PP_ERROR_FAILED);
|
| -
|
| - PP_DirectoryEntry* dir_entries = static_cast<PP_DirectoryEntry*>(data_buffer);
|
| - for (uint32_t i = 0; i < element_count; ++i) {
|
| - const FakeHtml5FsFilesystem::DirectoryEntry& fake_dir_entry =
|
| - fake_dir_entries[i];
|
| -
|
| - FakeFileRefResource* file_ref_resource = new FakeFileRefResource;
|
| - file_ref_resource->filesystem = directory_ref_resource->filesystem;
|
| - file_ref_resource->path = fake_dir_entry.path;
|
| - PP_Resource file_ref =
|
| - CREATE_RESOURCE(core_interface_->resource_manager(),
|
| - FakeFileRefResource, file_ref_resource);
|
| -
|
| - dir_entries[i].file_ref = file_ref;
|
| - dir_entries[i].file_type = fake_dir_entry.node->file_type();
|
| - }
|
| -
|
| - return RunCompletionCallback(&callback, PP_OK);
|
| -}
|
| -
|
| -int32_t FakeFileRefInterface::Rename(PP_Resource file_ref,
|
| - PP_Resource new_file_ref,
|
| - PP_CompletionCallback callback) {
|
| - FakeFileRefResource* file_ref_resource =
|
| - core_interface_->resource_manager()->Get<FakeFileRefResource>(file_ref);
|
| - if (file_ref_resource == NULL)
|
| - return PP_ERROR_BADRESOURCE;
|
| -
|
| - FakeFileRefResource* new_file_ref_resource =
|
| - core_interface_->resource_manager()->Get<FakeFileRefResource>(
|
| - new_file_ref);
|
| - if (new_file_ref_resource == NULL)
|
| - return PP_ERROR_BADRESOURCE;
|
| -
|
| - FakeHtml5FsFilesystem* filesystem = file_ref_resource->filesystem;
|
| - FakeHtml5FsFilesystem::Path path = file_ref_resource->path;
|
| - FakeHtml5FsFilesystem::Path newpath = new_file_ref_resource->path;
|
| - FakeHtml5FsNode* node = filesystem->GetNode(path);
|
| - if (node == NULL)
|
| - return RunCompletionCallback(&callback, PP_ERROR_FILENOTFOUND);
|
| - // FakeFileRefResource does not support directory rename.
|
| - if (!node->IsRegular())
|
| - return RunCompletionCallback(&callback, PP_ERROR_NOTAFILE);
|
| -
|
| - // Remove the destination if it exists.
|
| - filesystem->RemoveNode(newpath);
|
| - const std::vector<uint8_t> contents = node->contents();
|
| - EXPECT_TRUE(filesystem->AddFile(newpath, contents, NULL));
|
| - EXPECT_TRUE(filesystem->RemoveNode(path));
|
| - return RunCompletionCallback(&callback, PP_OK);
|
| -}
|
| -
|
| FakeFileSystemInterface::FakeFileSystemInterface(
|
| FakeCoreInterface* core_interface)
|
| : core_interface_(core_interface) {}
|
|
|