// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chromeos/components/quick_answers/test/test_helpers.h"
#include "chromeos/components/quick_answers/utils/unit_conversion_constants.h"
namespace quick_answers {
std::string GetQuickAnswerTextForTesting(
const std::vector<std::unique_ptr<QuickAnswerUiElement>>& elements) {
std::string text = "";
for (const auto& element : elements) {
switch (element->type) {
case QuickAnswerUiElementType::kText:
text += base::UTF16ToUTF8(
static_cast<QuickAnswerText*>(element.get())->text);
break;
default:
break;
}
}
return UnescapeStringForHTML(text);
}
base::Value::Dict CreateUnit(const std::string& name,
double rate_a,
double rate_b,
const std::string& category,
double rate_c) {
base::Value::Dict unit;
unit.Set(kNamePath, name);
// Since the vast majority of conversion rates involve a |rate_a| term, we
// will assume that |kConversionToSiAPath| will always be set (even if only to
// |kInvalidRateTermValue|).
// This behavior is used for certain test cases in unit_converter_unittest.cc
unit.Set(kConversionToSiAPath, rate_a);
if (rate_b != kInvalidRateTermValue) {
unit.Set(kConversionToSiBPath, rate_b);
}
if (rate_c != kInvalidRateTermValue) {
unit.Set(kConversionToSiCPath, rate_c);
}
if (!category.empty()) {
unit.Set(kCategoryPath, category);
}
return unit;
}
MockQuickAnswersDelegate::MockQuickAnswersDelegate() = default;
MockQuickAnswersDelegate::~MockQuickAnswersDelegate() = default;
MockResultLoaderDelegate::MockResultLoaderDelegate() = default;
MockResultLoaderDelegate::~MockResultLoaderDelegate() = default;
} // namespace quick_answers