#include "content/browser/file_system_access/file_system_access_safe_move_helper.h"
#include <memory>
#include <string>
#include <utility>
#include "base/files/file_path.h"
#include "base/files/file_util.h"
#include "base/files/scoped_temp_dir.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/weak_ptr.h"
#include "base/strings/string_number_conversions.h"
#include "base/task/sequenced_task_runner.h"
#include "base/task/single_thread_task_runner.h"
#include "base/test/bind.h"
#include "base/test/gmock_callback_support.h"
#include "content/browser/file_system_access/features.h"
#include "content/browser/file_system_access/file_system_access_safe_move_helper.h"
#include "content/browser/file_system_access/fixed_file_system_access_permission_grant.h"
#include "content/browser/file_system_access/mock_file_system_access_permission_context.h"
#include "content/public/test/browser_task_environment.h"
#include "storage/browser/file_system/file_system_operation.h"
#include "storage/browser/file_system/file_system_url.h"
#include "storage/browser/quota/quota_manager_proxy.h"
#include "storage/browser/test/async_file_test_helper.h"
#include "storage/browser/test/test_file_system_backend.h"
#include "storage/browser/test/test_file_system_context.h"
#include "storage/common/file_system/file_system_types.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/blink/public/common/storage_key/storage_key.h"
#include "third_party/blink/public/mojom/file_system_access/file_system_access_error.mojom.h"
#include "url/gurl.h"
FileSystemAccessStatus;
FileSystemURL;
_;
AllOf;
Eq;
Field;
namespace content {
namespace {
class MockQuarantine : public quarantine::mojom::Quarantine { … };
class TestFileSystemBackend : public storage::TestFileSystemBackend { … };
}
std::string GetHexEncodedString(const std::string& input) { … }
class FileSystemAccessSafeMoveHelperTest : public testing::Test { … };
TEST_F(FileSystemAccessSafeMoveHelperTest, HashSimpleOK) { … }
TEST_F(FileSystemAccessSafeMoveHelperTest, HashEmptyOK) { … }
TEST_F(FileSystemAccessSafeMoveHelperTest, HashNonExistingFileFails) { … }
TEST_F(FileSystemAccessSafeMoveHelperTest, HashLargerFileOK) { … }
TEST_F(FileSystemAccessSafeMoveHelperTest, Simple) { … }
TEST_F(FileSystemAccessSafeMoveHelperTest, DestExists) { … }
TEST_F(FileSystemAccessSafeMoveHelperTest, SecurityCheckFailed) { … }
TEST_F(FileSystemAccessSafeMoveHelperTest, SandboxedToSandboxed) { … }
TEST_F(FileSystemAccessSafeMoveHelperTest, SandboxedToLocal) { … }
TEST_F(FileSystemAccessSafeMoveHelperTest, SandboxedToExternal) { … }
TEST_F(FileSystemAccessSafeMoveHelperTest, LocalToLocalSameExtension) { … }
TEST_F(FileSystemAccessSafeMoveHelperTest, LocalToLocalDifferentExtension) { … }
TEST_F(FileSystemAccessSafeMoveHelperTest, LocalToLocalCompoundExtension) { … }
TEST_F(FileSystemAccessSafeMoveHelperTest, LocalToLocalNoExtension) { … }
TEST_F(FileSystemAccessSafeMoveHelperTest, LocalToLocalNoExtensionSource) { … }
TEST_F(FileSystemAccessSafeMoveHelperTest, LocalToLocalNoExtensionDest) { … }
TEST_F(FileSystemAccessSafeMoveHelperTest, LocalToExternal) { … }
TEST_F(FileSystemAccessSafeMoveHelperTest, LocalToSandboxed) { … }
class FileSystemAccessSafeMoveHelperAfterWriteChecksTest
: public FileSystemAccessSafeMoveHelperTest { … };
TEST_F(FileSystemAccessSafeMoveHelperAfterWriteChecksTest, Allow) { … }
TEST_F(FileSystemAccessSafeMoveHelperAfterWriteChecksTest, Block) { … }
TEST_F(FileSystemAccessSafeMoveHelperAfterWriteChecksTest,
LocalNoExtensionChange) { … }
TEST_F(FileSystemAccessSafeMoveHelperAfterWriteChecksTest,
LocalNoExtensionChangeSecurityCheckFailed) { … }
}