blob: 9a16ade44bd3e405cc1fc27809564263aca6ea82 [file] [log] [blame]
// Copyright 2024 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/sync/service/trusted_vault_synthetic_field_trial.h"
#include "components/sync/protocol/nigori_specifics.pb.h"
#include "google_apis/gaia/gaia_id.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace syncer {
namespace {
MATCHER(IsNotValid, "") {
return !arg.is_valid();
}
MATCHER_P(IsValidWithName, expected_name, "") {
return arg.is_valid() && arg.name() == expected_name;
}
sync_pb::TrustedVaultAutoUpgradeExperimentGroup BuildTestProto(
int cohort,
sync_pb::TrustedVaultAutoUpgradeExperimentGroup::Type type,
int type_index) {
sync_pb::TrustedVaultAutoUpgradeExperimentGroup proto;
proto.set_cohort(cohort);
proto.set_type(type);
proto.set_type_index(type_index);
return proto;
}
TEST(TrustedVaultSyntheticFieldTrialTest, ShouldBuildInvalidGroup) {
EXPECT_THAT(
TrustedVaultAutoUpgradeSyntheticFieldTrialGroup::FromProto(BuildTestProto(
/*cohort=*/1,
sync_pb::TrustedVaultAutoUpgradeExperimentGroup::TYPE_UNSPECIFIED,
/*type_index=*/0)),
IsNotValid());
EXPECT_THAT(
TrustedVaultAutoUpgradeSyntheticFieldTrialGroup::FromProto(BuildTestProto(
/*cohort=*/0,
sync_pb::TrustedVaultAutoUpgradeExperimentGroup::CONTROL,
/*type_index=*/0)),
IsNotValid());
EXPECT_THAT(
TrustedVaultAutoUpgradeSyntheticFieldTrialGroup::FromProto(BuildTestProto(
/*cohort=*/-1,
sync_pb::TrustedVaultAutoUpgradeExperimentGroup::CONTROL,
/*type_index=*/0)),
IsNotValid());
EXPECT_THAT(
TrustedVaultAutoUpgradeSyntheticFieldTrialGroup::FromProto(BuildTestProto(
/*cohort=*/101,
sync_pb::TrustedVaultAutoUpgradeExperimentGroup::CONTROL,
/*type_index=*/0)),
IsNotValid());
EXPECT_THAT(
TrustedVaultAutoUpgradeSyntheticFieldTrialGroup::FromProto(BuildTestProto(
/*cohort=*/6,
sync_pb::TrustedVaultAutoUpgradeExperimentGroup::CONTROL,
/*type_index=*/-1)),
IsNotValid());
EXPECT_THAT(
TrustedVaultAutoUpgradeSyntheticFieldTrialGroup::FromProto(BuildTestProto(
/*cohort=*/6,
sync_pb::TrustedVaultAutoUpgradeExperimentGroup::CONTROL,
/*type_index=*/51)),
IsNotValid());
}
TEST(TrustedVaultSyntheticFieldTrialTest,
ShouldBuildInvalidGroupFromProtoDefaults) {
EXPECT_THAT(TrustedVaultAutoUpgradeSyntheticFieldTrialGroup::FromProto(
sync_pb::TrustedVaultAutoUpgradeExperimentGroup()),
IsNotValid());
}
TEST(TrustedVaultSyntheticFieldTrialTest, ShouldGetValidGroupName) {
EXPECT_THAT(
TrustedVaultAutoUpgradeSyntheticFieldTrialGroup::FromProto(BuildTestProto(
/*cohort=*/5,
sync_pb::TrustedVaultAutoUpgradeExperimentGroup::TREATMENT,
/*type_index=*/0)),
IsValidWithName("Cohort5_Treatment"));
EXPECT_THAT(
TrustedVaultAutoUpgradeSyntheticFieldTrialGroup::FromProto(BuildTestProto(
/*cohort=*/6,
sync_pb::TrustedVaultAutoUpgradeExperimentGroup::CONTROL,
/*type_index=*/0)),
IsValidWithName("Cohort6_Control"));
EXPECT_THAT(
TrustedVaultAutoUpgradeSyntheticFieldTrialGroup::FromProto(BuildTestProto(
/*cohort=*/7,
sync_pb::TrustedVaultAutoUpgradeExperimentGroup::VALIDATION,
/*type_index=*/0)),
IsValidWithName("Cohort7_Validation"));
}
TEST(TrustedVaultSyntheticFieldTrialTest,
ShouldGetValidGroupNameWithTypeIndex) {
EXPECT_THAT(
TrustedVaultAutoUpgradeSyntheticFieldTrialGroup::FromProto(BuildTestProto(
/*cohort=*/5,
sync_pb::TrustedVaultAutoUpgradeExperimentGroup::TREATMENT,
/*type_index=*/1)),
IsValidWithName("Cohort5_Treatment1"));
EXPECT_THAT(
TrustedVaultAutoUpgradeSyntheticFieldTrialGroup::FromProto(BuildTestProto(
/*cohort=*/6,
sync_pb::TrustedVaultAutoUpgradeExperimentGroup::CONTROL,
/*type_index=*/2)),
IsValidWithName("Cohort6_Control2"));
EXPECT_THAT(
TrustedVaultAutoUpgradeSyntheticFieldTrialGroup::FromProto(BuildTestProto(
/*cohort=*/7,
sync_pb::TrustedVaultAutoUpgradeExperimentGroup::VALIDATION,
/*type_index=*/3)),
IsValidWithName("Cohort7_Validation3"));
EXPECT_THAT(
TrustedVaultAutoUpgradeSyntheticFieldTrialGroup::FromProto(BuildTestProto(
/*cohort=*/8,
sync_pb::TrustedVaultAutoUpgradeExperimentGroup::VALIDATION,
/*type_index=*/50)),
IsValidWithName("Cohort8_Validation50"));
}
} // namespace
} // namespace syncer