1// Copyright (c) 2012 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/test/base/chrome_render_view_host_test_harness.h" 6 7#include "chrome/browser/browser_process.h" 8#include "chrome/browser/signin/chrome_signin_client_factory.h" 9#include "chrome/browser/signin/fake_signin_manager.h" 10#include "chrome/browser/signin/signin_manager_factory.h" 11#include "chrome/test/base/testing_profile.h" 12 13#if defined(USE_ASH) 14#include "ash/shell.h" 15#endif 16 17#if defined(USE_AURA) 18#include "ui/aura/env.h" 19#include "ui/aura/window_event_dispatcher.h" 20#endif 21 22using content::RenderViewHostTester; 23using content::RenderViewHostTestHarness; 24 25ChromeRenderViewHostTestHarness::ChromeRenderViewHostTestHarness() { 26} 27 28ChromeRenderViewHostTestHarness::~ChromeRenderViewHostTestHarness() { 29} 30 31TestingProfile* ChromeRenderViewHostTestHarness::profile() { 32 return static_cast<TestingProfile*>(browser_context()); 33} 34 35RenderViewHostTester* ChromeRenderViewHostTestHarness::rvh_tester() { 36 return RenderViewHostTester::For(rvh()); 37} 38 39static KeyedService* BuildSigninManagerFake(content::BrowserContext* context) { 40 Profile* profile = static_cast<Profile*>(context); 41#if defined (OS_CHROMEOS) 42 SigninManagerBase* signin = new SigninManagerBase( 43 ChromeSigninClientFactory::GetInstance()->GetForProfile(profile)); 44 signin->Initialize(NULL); 45 return signin; 46#else 47 FakeSigninManager* manager = new FakeSigninManager(profile); 48 manager->Initialize(g_browser_process->local_state()); 49 return manager; 50#endif 51} 52 53void ChromeRenderViewHostTestHarness::TearDown() { 54 RenderViewHostTestHarness::TearDown(); 55#if defined(USE_ASH) 56 ash::Shell::DeleteInstance(); 57#endif 58#if defined(USE_AURA) 59 aura::Env::DeleteInstance(); 60#endif 61} 62 63content::BrowserContext* 64ChromeRenderViewHostTestHarness::CreateBrowserContext() { 65 TestingProfile::Builder builder; 66 builder.AddTestingFactory(SigninManagerFactory::GetInstance(), 67 BuildSigninManagerFake); 68 return builder.Build().release(); 69} 70