xref: /aosp_15_r20/external/cronet/components/metrics/ui/screen_info_metrics_provider_unittest.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1 // Copyright 2015 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/ui/screen_info_metrics_provider.h"
6 
7 #include "testing/gtest/include/gtest/gtest.h"
8 #include "third_party/metrics_proto/chrome_user_metrics_extension.pb.h"
9 #include "ui/gfx/geometry/size.h"
10 
11 namespace metrics {
12 
13 namespace {
14 
15 const int kScreenWidth = 1024;
16 const int kScreenHeight = 768;
17 const int kScreenCount = 3;
18 const float kScreenScaleFactor = 2;
19 
20 class TestScreenInfoMetricsProvider : public ScreenInfoMetricsProvider {
21  public:
TestScreenInfoMetricsProvider()22   TestScreenInfoMetricsProvider() {}
23 
24   TestScreenInfoMetricsProvider(const TestScreenInfoMetricsProvider&) = delete;
25   TestScreenInfoMetricsProvider& operator=(
26       const TestScreenInfoMetricsProvider&) = delete;
27 
~TestScreenInfoMetricsProvider()28   ~TestScreenInfoMetricsProvider() override {}
29 
30  private:
GetScreenSize() const31   std::optional<gfx::Size> GetScreenSize() const override {
32     return std::make_optional(gfx::Size(kScreenWidth, kScreenHeight));
33   }
34 
GetScreenDeviceScaleFactor() const35   float GetScreenDeviceScaleFactor() const override {
36     return kScreenScaleFactor;
37   }
38 
GetScreenCount() const39   int GetScreenCount() const override { return kScreenCount; }
40 };
41 
42 }  // namespace
43 
44 class ScreenInfoMetricsProviderTest : public testing::Test {
45  public:
ScreenInfoMetricsProviderTest()46   ScreenInfoMetricsProviderTest() {}
47 
48   ScreenInfoMetricsProviderTest(const ScreenInfoMetricsProviderTest&) = delete;
49   ScreenInfoMetricsProviderTest& operator=(
50       const ScreenInfoMetricsProviderTest&) = delete;
51 
~ScreenInfoMetricsProviderTest()52   ~ScreenInfoMetricsProviderTest() override {}
53 };
54 
TEST_F(ScreenInfoMetricsProviderTest,ProvideSystemProfileMetrics)55 TEST_F(ScreenInfoMetricsProviderTest, ProvideSystemProfileMetrics) {
56   TestScreenInfoMetricsProvider provider;
57   ChromeUserMetricsExtension uma_proto;
58 
59   provider.ProvideSystemProfileMetrics(uma_proto.mutable_system_profile());
60 
61   // Check that the system profile has the correct values set.
62   const SystemProfileProto::Hardware& hardware =
63       uma_proto.system_profile().hardware();
64   EXPECT_EQ(kScreenWidth, hardware.primary_screen_width());
65   EXPECT_EQ(kScreenHeight, hardware.primary_screen_height());
66   EXPECT_EQ(kScreenScaleFactor, hardware.primary_screen_scale_factor());
67   EXPECT_EQ(kScreenCount, hardware.screen_count());
68 }
69 
70 }  // namespace metrics
71