1 // Copyright 2016 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.
5 #include "media/remoting/metrics.h"
9 #include "base/test/metrics/histogram_tester.h"
10 #include "testing/gmock/include/gmock/gmock.h"
11 #include "testing/gtest/include/gtest/gtest.h"
14 using testing::ElementsAre;
21 class MediaRemotingMetricsTest : public testing::Test {
23 media::remoting::SessionMetricsRecorder recorder_;
28 TEST_F(MediaRemotingMetricsTest, RecordVideoPixelRateSupport) {
29 constexpr char kPixelRateSupportHistogramName[] =
30 "Media.Remoting.VideoPixelRateSupport";
31 base::HistogramTester tester;
32 tester.ExpectTotalCount(kPixelRateSupportHistogramName, 0);
34 recorder_.RecordVideoPixelRateSupport(PixelRateSupport::k4kNotSupported);
35 recorder_.RecordVideoPixelRateSupport(PixelRateSupport::k2kSupported);
36 recorder_.RecordVideoPixelRateSupport(PixelRateSupport::k4kNotSupported);
38 // We record only for the first RecordVideoPixelRateSupport() call for the
39 // given SessionMetricsRecorder instance.
40 EXPECT_THAT(tester.GetAllSamples(kPixelRateSupportHistogramName),
42 static_cast<int>(PixelRateSupport::k4kNotSupported), 1)));
45 TEST_F(MediaRemotingMetricsTest, RecordCompatibility) {
46 constexpr char kCompatibilityHistogramName[] = "Media.Remoting.Compatibility";
47 base::HistogramTester tester;
48 tester.ExpectTotalCount(kCompatibilityHistogramName, 0);
50 recorder_.RecordCompatibility(RemotingCompatibility::kIncompatibleVideoCodec);
51 recorder_.RecordCompatibility(RemotingCompatibility::kCompatible);
52 recorder_.RecordCompatibility(RemotingCompatibility::kIncompatibleVideoCodec);
54 // We record only for the first RecordCompatibility() call for the
55 // given SessionMetricsRecorder instance.
57 tester.GetAllSamples(kCompatibilityHistogramName),
59 static_cast<int>(RemotingCompatibility::kIncompatibleVideoCodec),
63 } // namespace remoting