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