summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/api/system_cpu/system_cpu_apitest.cc
blob: cec720ad32b5135670253ddb7a89e8330535f6f9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chrome/browser/extensions/extension_apitest.h"
#include "extensions/browser/api/system_cpu/cpu_info_provider.h"

namespace extensions {

using core_api::system_cpu::CpuInfo;

class MockCpuInfoProviderImpl : public CpuInfoProvider {
 public:
  MockCpuInfoProviderImpl() {}

  virtual bool QueryInfo() OVERRIDE {
    info_.num_of_processors = 4;
    info_.arch_name = "x86";
    info_.model_name = "unknown";

    info_.features.clear();
    info_.features.push_back("mmx");
    info_.features.push_back("avx");

    info_.processors.clear();
    info_.processors.push_back(linked_ptr<core_api::system_cpu::ProcessorInfo>(
        new core_api::system_cpu::ProcessorInfo()));
    info_.processors[0]->usage.kernel = 1;
    info_.processors[0]->usage.user = 2;
    info_.processors[0]->usage.idle = 3;
    info_.processors[0]->usage.total = 6;
    return true;
  }

 private:
  virtual ~MockCpuInfoProviderImpl() {}
};

class SystemCpuApiTest: public ExtensionApiTest {
 public:
  SystemCpuApiTest() {}
  virtual ~SystemCpuApiTest() {}

  virtual void SetUpInProcessBrowserTestFixture() OVERRIDE {
    ExtensionApiTest::SetUpInProcessBrowserTestFixture();
  }
};

IN_PROC_BROWSER_TEST_F(SystemCpuApiTest, Cpu) {
  CpuInfoProvider* provider = new MockCpuInfoProviderImpl();
  // The provider is owned by the single CpuInfoProvider instance.
  CpuInfoProvider::InitializeForTesting(provider);
  ASSERT_TRUE(RunExtensionTest("system/cpu")) << message_;
}

}  // namespace extensions