1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROME_TEST_BASE_UMA_HISTOGRAM_HELPER_H_
6 #define CHROME_TEST_BASE_UMA_HISTOGRAM_HELPER_H_
8 #include "base/metrics/histogram.h"
9 #include "base/metrics/histogram_base.h"
10 #include "base/metrics/histogram_samples.h"
12 // UMAHistogramHelper provides a simple interface for examining UMA histograms.
13 // Tests can use this interface to verify that UMA data is getting logged as
15 class UMAHistogramHelper
{
19 // Each child process may have its own histogram data, make sure this data
20 // gets accumulated into the browser process before we examine the histograms.
23 // We know the exact number of samples in a bucket, and that no other bucket
24 // should have samples.
25 void ExpectUniqueSample(const std::string
& name
,
26 base::HistogramBase::Sample sample
,
27 base::HistogramBase::Count expected_count
);
29 // We don't know the values of the samples, but we know how many there are.
30 void ExpectTotalCount(const std::string
& name
,
31 base::HistogramBase::Count count
);
36 void CheckBucketCount(const std::string
& name
,
37 base::HistogramBase::Sample sample
,
38 base::Histogram::Count expected_count
,
39 base::HistogramSamples
& samples
);
41 void CheckTotalCount(const std::string
& name
,
42 base::Histogram::Count expected_count
,
43 base::HistogramSamples
& samples
);
45 DISALLOW_COPY_AND_ASSIGN(UMAHistogramHelper
);
48 #endif // CHROME_TEST_BASE_UMA_HISTOGRAM_HELPER_H_