blob: 464a11dd356b328882df8ea8bb03b2bbe221a951 [file] [log] [blame] [edit]
// Copyright 2024 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "cryptohome/fp_migration/utility.h"
#include <optional>
#include <gtest/gtest.h>
#include "cryptohome/crypto.h"
#include "cryptohome/fake_features.h"
#include "cryptohome/util/async_init.h"
namespace cryptohome {
namespace {
class FpMigrationUtilityTest : public ::testing::Test {
protected:
FakeFeaturesForTesting fake_features_;
// BiometricsService and Crypto are set to nullptr.
FpMigrationUtility fp_migration_utility_{
nullptr, AsyncInitPtr<BiometricsAuthBlockService>(nullptr),
&fake_features_.async};
};
} // namespace
// GetLegacyFingerprintMigrationRollout is by default 0.
TEST_F(FpMigrationUtilityTest, GetRolloutDefault) {
EXPECT_EQ(fp_migration_utility_.GetLegacyFingerprintMigrationRollout(), 0);
}
// Test NeedsMigration's behavior.
TEST_F(FpMigrationUtilityTest, NeedsMigration) {
// By default, features flags are false. No migraions is needed/allowed.
EXPECT_FALSE(fp_migration_utility_.NeedsMigration(std::nullopt));
EXPECT_FALSE(fp_migration_utility_.NeedsMigration(0));
EXPECT_FALSE(fp_migration_utility_.NeedsMigration(1));
fake_features_.SetDefaultForFeature(Features::kMigrateLegacyFingerprint,
true);
EXPECT_TRUE(fp_migration_utility_.NeedsMigration(std::nullopt));
EXPECT_TRUE(fp_migration_utility_.NeedsMigration(0));
EXPECT_FALSE(fp_migration_utility_.NeedsMigration(1));
}
} // namespace cryptohome