Home | History | Annotate | Download | only in metrics
      1 // Copyright 2014 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.
      4 
      5 #include "chrome/browser/metrics/gpu_metrics_provider.h"
      6 
      7 #include "base/basictypes.h"
      8 #include "components/metrics/proto/chrome_user_metrics_extension.pb.h"
      9 #include "testing/gtest/include/gtest/gtest.h"
     10 #include "ui/gfx/size.h"
     11 
     12 namespace {
     13 
     14 const int kScreenWidth = 1024;
     15 const int kScreenHeight = 768;
     16 const int kScreenCount = 3;
     17 const float kScreenScaleFactor = 2;
     18 
     19 class TestGPUMetricsProvider : public GPUMetricsProvider {
     20  public:
     21   TestGPUMetricsProvider() {}
     22   virtual ~TestGPUMetricsProvider() {}
     23 
     24  private:
     25   virtual gfx::Size GetScreenSize() const OVERRIDE {
     26     return gfx::Size(kScreenWidth, kScreenHeight);
     27   }
     28 
     29   virtual float GetScreenDeviceScaleFactor() const OVERRIDE {
     30     return kScreenScaleFactor;
     31   }
     32 
     33   virtual int GetScreenCount() const OVERRIDE {
     34     return kScreenCount;
     35   }
     36 
     37   DISALLOW_COPY_AND_ASSIGN(TestGPUMetricsProvider);
     38 };
     39 
     40 }  // namespace
     41 
     42 class GPUMetricsProviderTest : public testing::Test {
     43  public:
     44   GPUMetricsProviderTest() {}
     45   virtual ~GPUMetricsProviderTest() {}
     46 
     47  private:
     48   DISALLOW_COPY_AND_ASSIGN(GPUMetricsProviderTest);
     49 };
     50 
     51 TEST_F(GPUMetricsProviderTest, ProvideSystemProfileMetrics) {
     52   TestGPUMetricsProvider provider;
     53   metrics::ChromeUserMetricsExtension uma_proto;
     54 
     55   provider.ProvideSystemProfileMetrics(uma_proto.mutable_system_profile());
     56 
     57   // Check that the system profile has the correct values set.
     58   const metrics::SystemProfileProto::Hardware& hardware =
     59       uma_proto.system_profile().hardware();
     60   EXPECT_EQ(kScreenWidth, hardware.primary_screen_width());
     61   EXPECT_EQ(kScreenHeight, hardware.primary_screen_height());
     62   EXPECT_EQ(kScreenScaleFactor, hardware.primary_screen_scale_factor());
     63   EXPECT_EQ(kScreenCount, hardware.screen_count());
     64 }
     65