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 22 using content::RenderViewHostTester; 23 using content::RenderViewHostTestHarness; 24 25 ChromeRenderViewHostTestHarness::ChromeRenderViewHostTestHarness() { 26 } 27 28 ChromeRenderViewHostTestHarness::~ChromeRenderViewHostTestHarness() { 29 } 30 31 TestingProfile* ChromeRenderViewHostTestHarness::profile() { 32 return static_cast<TestingProfile*>(browser_context()); 33 } 34 35 RenderViewHostTester* ChromeRenderViewHostTestHarness::rvh_tester() { 36 return RenderViewHostTester::For(rvh()); 37 } 38 39 static 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 53 void 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 63 content::BrowserContext* 64 ChromeRenderViewHostTestHarness::CreateBrowserContext() { 65 TestingProfile::Builder builder; 66 builder.AddTestingFactory(SigninManagerFactory::GetInstance(), 67 BuildSigninManagerFake); 68 return builder.Build().release(); 69 } 70