blob: 9e30a125aac56ef6bab27b0b526d03d07c1cca67 [file] [log] [blame]
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/persistent_cache/sqlite/test_helper.h"
#include "base/files/file_path.h"
#include "base/files/scoped_temp_dir.h"
#include "components/persistent_cache/sqlite/sqlite_backend_impl.h"
#include "components/persistent_cache/sqlite/vfs/sqlite_database_vfs_file_set.h"
namespace persistent_cache::test_support {
TestHelper::TestHelper() = default;
TestHelper::~TestHelper() = default;
std::optional<SqliteVfsFileSet> TestHelper::CreateFilesAndBuildVfsFileSet() {
base::FilePath temporary_subdir = CreateTemporaryDir();
// Note: Specifically give nonsensical names to the files here to examplify
// that using a vfs allows for their use not through their actual names.
return SqliteVfsFileSet::Create(temporary_subdir.AppendASCII("FIRST"),
temporary_subdir.AppendASCII("SECOND"));
}
std::unique_ptr<Backend> TestHelper::CreateBackendWithFiles(BackendType type) {
switch (type) {
case BackendType::kSqlite:
if (auto file_set = CreateFilesAndBuildVfsFileSet(); file_set) {
return std::make_unique<SqliteBackendImpl>(*std::move(file_set));
}
return nullptr;
}
}
base::FilePath TestHelper::CreateTemporaryDir() {
scoped_temp_dirs_.emplace_back();
CHECK(scoped_temp_dirs_.back().CreateUniqueTempDir());
return scoped_temp_dirs_.back().GetPath();
}
} // namespace persistent_cache::test_support