// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_OS_CRYPT_ASYNC_BROWSER_TEST_UTILS_H_
#define COMPONENTS_OS_CRYPT_ASYNC_BROWSER_TEST_UTILS_H_

#include <memory>

#include "components/os_crypt/async/browser/os_crypt_async.h"
#include "components/os_crypt/async/common/test_encryptor.h"

namespace os_crypt_async {

// These key prefixes can be used, if necessary, by tests to verify that the
// data encrypted with OSCrypt Async matches the correct key expected.
inline constexpr char kDefaultTestKeyPrefix[] = "k1";
inline constexpr char kOsCryptSyncCompatibleTestKeyPrefix[] = "k2";

// Obtain a test OSCryptAsync. This OSCryptAsync will vend test Encryptors that
// perform encryption/decryption using a random test key. In unit tests without
// a full task environment, `is_sync_for_unittests` can be set to true.
std::unique_ptr<OSCryptAsync> GetTestOSCryptAsyncForTesting(
    bool is_sync_for_unittests = false);

// Obtain a test Encryptor. This Encryptor will perform encryption using a
// random key. The key for test Encryptors is different each time this function
// is called, and different from the ones vended from the test OSCryptAsync
// above. An `option` can be specified in the same way as calling `GetInstance`
// on `OSCryptAsync`.
TestEncryptor GetTestEncryptorForTesting(
    Encryptor::Option option = Encryptor::Option::kNone);

}  // namespace os_crypt_async

#endif  // COMPONENTS_OS_CRYPT_ASYNC_BROWSER_TEST_UTILS_H_
