1 // Copyright 2018 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "components/metrics/expired_histograms_checker.h"
6
7 #include "base/metrics/metrics_hashes.h"
8 #include "testing/gtest/include/gtest/gtest.h"
9
10 namespace metrics {
11
TEST(ExpiredHistogramsCheckerTests,BasicTest)12 TEST(ExpiredHistogramsCheckerTests, BasicTest) {
13 uint32_t expired_hashes[] = {1, 2, 3};
14 std::string allowlist_str = "";
15 ExpiredHistogramsChecker checker(expired_hashes, allowlist_str);
16
17 EXPECT_TRUE(checker.ShouldRecord(0));
18 EXPECT_FALSE(checker.ShouldRecord(3));
19 }
20
TEST(ExpiredHistogramsCheckerTests,AllowlistTest)21 TEST(ExpiredHistogramsCheckerTests, AllowlistTest) {
22 std::string hist1 = "hist1";
23 std::string hist2 = "hist2";
24 std::string hist3 = "hist3";
25 std::string hist4 = "hist4";
26
27 uint32_t expired_hashes[] = {base::HashMetricNameAs32Bits(hist1),
28 base::HashMetricNameAs32Bits(hist2)};
29 std::string allowlist_str = hist2 + "," + hist4;
30 ExpiredHistogramsChecker checker(expired_hashes, allowlist_str);
31
32 EXPECT_FALSE(checker.ShouldRecord(base::HashMetricNameAs32Bits(hist1)));
33 EXPECT_TRUE(checker.ShouldRecord(base::HashMetricNameAs32Bits(hist2)));
34 EXPECT_TRUE(checker.ShouldRecord(base::HashMetricNameAs32Bits(hist3)));
35 EXPECT_TRUE(checker.ShouldRecord(base::HashMetricNameAs32Bits(hist4)));
36 }
37
38 } // namespace metrics
39