Fix FullScreen crash in Webapp
[platform/framework/web/chromium-efl.git] / media / remoting / metrics_unittest.cc
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.
4
5 #include "media/remoting/metrics.h"
6
7 #include <string>
8
9 #include "base/test/metrics/histogram_tester.h"
10 #include "testing/gmock/include/gmock/gmock.h"
11 #include "testing/gtest/include/gtest/gtest.h"
12
13 using base::Bucket;
14 using testing::ElementsAre;
15
16 namespace media {
17 namespace remoting {
18
19 namespace {
20
21 class MediaRemotingMetricsTest : public testing::Test {
22  protected:
23   media::remoting::SessionMetricsRecorder recorder_;
24 };
25
26 }  // namespace
27
28 TEST_F(MediaRemotingMetricsTest, RecordVideoPixelRateSupport) {
29   constexpr char kPixelRateSupportHistogramName[] =
30       "Media.Remoting.VideoPixelRateSupport";
31   base::HistogramTester tester;
32   tester.ExpectTotalCount(kPixelRateSupportHistogramName, 0);
33
34   recorder_.RecordVideoPixelRateSupport(PixelRateSupport::k4kNotSupported);
35   recorder_.RecordVideoPixelRateSupport(PixelRateSupport::k2kSupported);
36   recorder_.RecordVideoPixelRateSupport(PixelRateSupport::k4kNotSupported);
37
38   // We record only for the first RecordVideoPixelRateSupport() call for the
39   // given SessionMetricsRecorder instance.
40   EXPECT_THAT(tester.GetAllSamples(kPixelRateSupportHistogramName),
41               ElementsAre(Bucket(
42                   static_cast<int>(PixelRateSupport::k4kNotSupported), 1)));
43 }
44
45 TEST_F(MediaRemotingMetricsTest, RecordCompatibility) {
46   constexpr char kCompatibilityHistogramName[] = "Media.Remoting.Compatibility";
47   base::HistogramTester tester;
48   tester.ExpectTotalCount(kCompatibilityHistogramName, 0);
49
50   recorder_.RecordCompatibility(RemotingCompatibility::kIncompatibleVideoCodec);
51   recorder_.RecordCompatibility(RemotingCompatibility::kCompatible);
52   recorder_.RecordCompatibility(RemotingCompatibility::kIncompatibleVideoCodec);
53
54   // We record only for the first RecordCompatibility() call for the
55   // given SessionMetricsRecorder instance.
56   EXPECT_THAT(
57       tester.GetAllSamples(kCompatibilityHistogramName),
58       ElementsAre(Bucket(
59           static_cast<int>(RemotingCompatibility::kIncompatibleVideoCodec),
60           1)));
61 }
62
63 }  // namespace remoting
64 }  // namespace media