gpu_metrics_provider_unittest.cc revision 1320f92c476a1ad9d19dba2a48c72b75566198e9
1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// found in the LICENSE file. 4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "components/metrics/gpu/gpu_metrics_provider.h" 6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "base/basictypes.h" 8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "components/metrics/proto/chrome_user_metrics_extension.pb.h" 9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "ui/gfx/size.h" 11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace metrics { 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace { 15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)const int kScreenWidth = 1024; 17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)const int kScreenHeight = 768; 18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)const int kScreenCount = 3; 19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)const float kScreenScaleFactor = 2; 20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class TestGPUMetricsProvider : public GPUMetricsProvider { 22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) public: 23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) TestGPUMetricsProvider() {} 24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual ~TestGPUMetricsProvider() {} 25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) private: 27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual gfx::Size GetScreenSize() const OVERRIDE { 28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return gfx::Size(kScreenWidth, kScreenHeight); 29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) } 30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual float GetScreenDeviceScaleFactor() const OVERRIDE { 32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return kScreenScaleFactor; 33cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) } 34cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 35cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual int GetScreenCount() const OVERRIDE { 36cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return kScreenCount; 37cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) } 38cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 39cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(TestGPUMetricsProvider); 40cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 41cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 42cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} // namespace 43cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 44cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class GPUMetricsProviderTest : public testing::Test { 45cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) public: 46cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) GPUMetricsProviderTest() {} 47cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual ~GPUMetricsProviderTest() {} 48cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 49cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) private: 50cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(GPUMetricsProviderTest); 51cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 52cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 53cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)TEST_F(GPUMetricsProviderTest, ProvideSystemProfileMetrics) { 54cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) TestGPUMetricsProvider provider; 55cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) metrics::ChromeUserMetricsExtension uma_proto; 56cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 57cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) provider.ProvideSystemProfileMetrics(uma_proto.mutable_system_profile()); 58cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 59cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Check that the system profile has the correct values set. 60cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) const metrics::SystemProfileProto::Hardware& hardware = 61cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) uma_proto.system_profile().hardware(); 62cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) EXPECT_EQ(kScreenWidth, hardware.primary_screen_width()); 63cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) EXPECT_EQ(kScreenHeight, hardware.primary_screen_height()); 64cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) EXPECT_EQ(kScreenScaleFactor, hardware.primary_screen_scale_factor()); 65cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) EXPECT_EQ(kScreenCount, hardware.screen_count()); 66cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} 671320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 681320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} // namespace metrics 69