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 "base/message_loop/message_loop.h"
6#include "chrome/browser/extensions/extension_apitest.h"
7#include "extensions/browser/api/system_memory/memory_info_provider.h"
8
9namespace extensions {
10
11using core_api::system_memory::MemoryInfo;
12
13class MockMemoryInfoProviderImpl : public MemoryInfoProvider {
14 public:
15  MockMemoryInfoProviderImpl() {}
16
17  virtual bool QueryInfo() OVERRIDE {
18    info_.capacity = 4096;
19    info_.available_capacity = 1024;
20    return true;
21  }
22 private:
23  virtual ~MockMemoryInfoProviderImpl() {}
24};
25
26class SystemMemoryApiTest: public ExtensionApiTest {
27 public:
28  SystemMemoryApiTest() {}
29  virtual ~SystemMemoryApiTest() {}
30
31  virtual void SetUpInProcessBrowserTestFixture() OVERRIDE {
32    ExtensionApiTest::SetUpInProcessBrowserTestFixture();
33    message_loop_.reset(new base::MessageLoopForUI);
34  }
35
36 private:
37  scoped_ptr<base::MessageLoop> message_loop_;
38};
39
40IN_PROC_BROWSER_TEST_F(SystemMemoryApiTest, Memory) {
41  scoped_refptr<MemoryInfoProvider> provider = new MockMemoryInfoProviderImpl();
42  // The provider is owned by the single MemoryInfoProvider instance.
43  MemoryInfoProvider::InitializeForTesting(provider);
44  ASSERT_TRUE(RunExtensionTest("system/memory")) << message_;
45}
46
47}  // namespace extensions
48