1a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 59ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#include "base/message_loop/message_loop.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/extensions/extension_apitest.h" 71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "extensions/browser/api/system_memory/memory_info_provider.h" 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace extensions { 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciusing core_api::system_memory::MemoryInfo; 12868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MockMemoryInfoProviderImpl : public MemoryInfoProvider { 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MockMemoryInfoProviderImpl() {} 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 177dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch virtual bool QueryInfo() OVERRIDE { 187dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch info_.capacity = 4096; 197dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch info_.available_capacity = 1024; 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return true; 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private: 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual ~MockMemoryInfoProviderImpl() {} 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 26a3f7b4e666c476898878fa745f637129375cd889Ben Murdochclass SystemMemoryApiTest: public ExtensionApiTest { 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 28a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch SystemMemoryApiTest() {} 29a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch virtual ~SystemMemoryApiTest() {} 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SetUpInProcessBrowserTestFixture() OVERRIDE { 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ExtensionApiTest::SetUpInProcessBrowserTestFixture(); 335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) message_loop_.reset(new base::MessageLoopForUI); 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 3790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) scoped_ptr<base::MessageLoop> message_loop_; 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 40a3f7b4e666c476898878fa745f637129375cd889Ben MurdochIN_PROC_BROWSER_TEST_F(SystemMemoryApiTest, Memory) { 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_refptr<MemoryInfoProvider> provider = new MockMemoryInfoProviderImpl(); 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The provider is owned by the single MemoryInfoProvider instance. 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MemoryInfoProvider::InitializeForTesting(provider); 44a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch ASSERT_TRUE(RunExtensionTest("system/memory")) << message_; 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace extensions 48