1 // Copyright 2013 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/extensions/extension_apitest.h" 6 #include "extensions/browser/api/system_cpu/cpu_info_provider.h" 7 8 namespace extensions { 9 10 using core_api::system_cpu::CpuInfo; 11 12 class MockCpuInfoProviderImpl : public CpuInfoProvider { 13 public: 14 MockCpuInfoProviderImpl() {} 15 16 virtual bool QueryInfo() OVERRIDE { 17 info_.num_of_processors = 4; 18 info_.arch_name = "x86"; 19 info_.model_name = "unknown"; 20 21 info_.features.clear(); 22 info_.features.push_back("mmx"); 23 info_.features.push_back("avx"); 24 25 info_.processors.clear(); 26 info_.processors.push_back(linked_ptr<core_api::system_cpu::ProcessorInfo>( 27 new core_api::system_cpu::ProcessorInfo())); 28 info_.processors[0]->usage.kernel = 1; 29 info_.processors[0]->usage.user = 2; 30 info_.processors[0]->usage.idle = 3; 31 info_.processors[0]->usage.total = 6; 32 return true; 33 } 34 35 private: 36 virtual ~MockCpuInfoProviderImpl() {} 37 }; 38 39 class SystemCpuApiTest: public ExtensionApiTest { 40 public: 41 SystemCpuApiTest() {} 42 virtual ~SystemCpuApiTest() {} 43 44 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE { 45 ExtensionApiTest::SetUpInProcessBrowserTestFixture(); 46 } 47 }; 48 49 IN_PROC_BROWSER_TEST_F(SystemCpuApiTest, Cpu) { 50 CpuInfoProvider* provider = new MockCpuInfoProviderImpl(); 51 // The provider is owned by the single CpuInfoProvider instance. 52 CpuInfoProvider::InitializeForTesting(provider); 53 ASSERT_TRUE(RunExtensionTest("system/cpu")) << message_; 54 } 55 56 } // namespace extensions 57