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