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 size_t size = 3;
15 std::string allowlist_str = "";
16 ExpiredHistogramsChecker checker(expired_hashes, size, allowlist_str);
17
18 EXPECT_TRUE(checker.ShouldRecord(0));
19 EXPECT_FALSE(checker.ShouldRecord(3));
20 }
21
TEST(ExpiredHistogramsCheckerTests,AllowlistTest)22 TEST(ExpiredHistogramsCheckerTests, AllowlistTest) {
23 std::string hist1 = "hist1";
24 std::string hist2 = "hist2";
25 std::string hist3 = "hist3";
26 std::string hist4 = "hist4";
27
28 uint32_t expired_hashes[] = {base::HashMetricNameAs32Bits(hist1),
29 base::HashMetricNameAs32Bits(hist2)};
30 size_t size = 2;
31 std::string allowlist_str = hist2 + "," + hist4;
32 ExpiredHistogramsChecker checker(expired_hashes, size, allowlist_str);
33
34 EXPECT_FALSE(checker.ShouldRecord(base::HashMetricNameAs32Bits(hist1)));
35 EXPECT_TRUE(checker.ShouldRecord(base::HashMetricNameAs32Bits(hist2)));
36 EXPECT_TRUE(checker.ShouldRecord(base::HashMetricNameAs32Bits(hist3)));
37 EXPECT_TRUE(checker.ShouldRecord(base::HashMetricNameAs32Bits(hist4)));
38 }
39
40 } // namespace metrics
41