#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include "components/spellcheck/browser/spellcheck_host_metrics.h"
#include <stddef.h>
#include <memory>
#include "base/metrics/histogram_samples.h"
#include "base/strings/utf_string_conversions.h"
#include "base/test/metrics/histogram_tester.h"
#include "base/test/task_environment.h"
#include "build/build_config.h"
#include "testing/gtest/include/gtest/gtest.h"
class SpellcheckHostMetricsTest : public testing::Test { … };
TEST_F(SpellcheckHostMetricsTest, RecordEnabledStats) { … }
TEST_F(SpellcheckHostMetricsTest, RecordWordCountsDiscardsDuplicates) { … }
TEST_F(SpellcheckHostMetricsTest, RecordSpellingServiceStats) { … }
#if BUILDFLAG(IS_WIN)
TEST_F(SpellcheckHostMetricsTest, RecordAcceptLanguageStats) {
const char* const histogram_names[] = {
"Spellcheck.Windows.ChromeLocalesSupport2.Both",
"Spellcheck.Windows.ChromeLocalesSupport2.HunspellOnly",
"Spellcheck.Windows.ChromeLocalesSupport2.NativeOnly",
"Spellcheck.Windows.ChromeLocalesSupport2.NoSupport"};
const size_t expected_counts[] = {1, 2, 3, 4};
base::HistogramTester histogram_tester;
SpellCheckHostMetrics::RecordAcceptLanguageStats({
expected_counts[0],
expected_counts[1],
expected_counts[2],
expected_counts[3],
});
for (size_t i = 0; i < std::size(histogram_names); ++i) {
histogram_tester.ExpectTotalCount(histogram_names[i], 1);
histogram_tester.ExpectBucketCount(histogram_names[i],
static_cast<int>(expected_counts[i]), 1);
}
}
TEST_F(SpellcheckHostMetricsTest, RecordSpellcheckLanguageStats) {
const char* const histogram_names[] = {
"Spellcheck.Windows.SpellcheckLocalesSupport2.Both",
"Spellcheck.Windows.SpellcheckLocalesSupport2.HunspellOnly",
"Spellcheck.Windows.SpellcheckLocalesSupport2.NativeOnly"};
const size_t expected_counts[] = {1, 2, 3};
base::HistogramTester histogram_tester;
SpellCheckHostMetrics::RecordSpellcheckLanguageStats({
expected_counts[0],
expected_counts[1],
expected_counts[2],
0,
});
for (size_t i = 0; i < std::size(histogram_names); ++i) {
histogram_tester.ExpectTotalCount(histogram_names[i], 1);
histogram_tester.ExpectBucketCount(histogram_names[i],
static_cast<int>(expected_counts[i]), 1);
}
}
#endif