blob: b7556970cad778a9cef605e67d8c6bd5dcfa802e [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/flags_ui/feature_entry.h"
#include "base/logging.h"
#include "base/strings/string_number_conversions.h"
#include "grit/components_strings.h"
#include "ui/base/l10n/l10n_util.h"
namespace flags_ui {
std::string FeatureEntry::NameForChoice(int index) const {
DCHECK(type == FeatureEntry::MULTI_VALUE ||
type == FeatureEntry::ENABLE_DISABLE_VALUE ||
type == FeatureEntry::FEATURE_VALUE);
DCHECK_LT(index, num_choices);
return std::string(internal_name) + testing::kMultiSeparator +
base::IntToString(index);
}
base::string16 FeatureEntry::DescriptionForChoice(int index) const {
DCHECK(type == FeatureEntry::MULTI_VALUE ||
type == FeatureEntry::ENABLE_DISABLE_VALUE ||
type == FeatureEntry::FEATURE_VALUE);
DCHECK_LT(index, num_choices);
int description_id;
if (type == FeatureEntry::ENABLE_DISABLE_VALUE ||
type == FeatureEntry::FEATURE_VALUE) {
const int kEnableDisableDescriptionIds[] = {
IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT,
IDS_GENERIC_EXPERIMENT_CHOICE_ENABLED,
IDS_GENERIC_EXPERIMENT_CHOICE_DISABLED,
};
description_id = kEnableDisableDescriptionIds[index];
} else {
description_id = choices[index].description_id;
}
return l10n_util::GetStringUTF16(description_id);
}
namespace testing {
// WARNING: '@' is also used in the html file. If you update this constant you
// also need to update the html file.
const char kMultiSeparator[] = "@";
} // namespace testing
} // namespace flags_ui