// Copyright 2017 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/feature_engagement/internal/single_invalid_configuration.h"

#include "build/build_config.h"
#include "components/feature_engagement/public/configuration.h"

namespace feature_engagement {

SingleInvalidConfiguration::SingleInvalidConfiguration() {
  invalid_feature_config_.valid = false;
  invalid_feature_config_.used.name = "nothing_to_see_here";

  invalid_group_config_.valid = false;
}

SingleInvalidConfiguration::~SingleInvalidConfiguration() = default;

bool SingleInvalidConfiguration::HasFeatureConfig(
    const base::Feature& feature) const {
  return true;
}

const FeatureConfig& SingleInvalidConfiguration::GetFeatureConfig(
    const base::Feature& feature) const {
  return invalid_feature_config_;
}

const FeatureConfig& SingleInvalidConfiguration::GetFeatureConfigByName(
    const std::string& feature_name) const {
  return invalid_feature_config_;
}

const Configuration::ConfigMap&
SingleInvalidConfiguration::GetRegisteredFeatureConfigs() const {
  return configs_;
}

const std::vector<std::string>
SingleInvalidConfiguration::GetRegisteredFeatures() const {
  return {};
}

const GroupConfig& SingleInvalidConfiguration::GetGroupConfig(
    const base::Feature& group) const {
  return invalid_group_config_;
}

const GroupConfig& SingleInvalidConfiguration::GetGroupConfigByName(
    const std::string& group_name) const {
  return invalid_group_config_;
}

const Configuration::GroupConfigMap&
SingleInvalidConfiguration::GetRegisteredGroupConfigs() const {
  return group_configs_;
}

const std::vector<std::string> SingleInvalidConfiguration::GetRegisteredGroups()
    const {
  return {};
}

#if BUILDFLAG(IS_CHROMEOS)
void SingleInvalidConfiguration::UpdateConfig(
    const base::Feature& feature,
    const ConfigurationProvider* provider) {}

const Configuration::EventPrefixSet&
SingleInvalidConfiguration::GetRegisteredAllowedEventPrefixes() const {
  return event_prefixes_;
}
#endif

}  // namespace feature_engagement
