15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 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) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CHROME_TEST_BASE_BROWSER_WITH_TEST_WINDOW_TEST_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROME_TEST_BASE_BROWSER_WITH_TEST_WINDOW_TEST_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/at_exit.h" 99ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#include "base/message_loop/message_loop.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/browser.h" 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/ui/host_desktop.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/test/base/test_browser_window.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/test/base/testing_profile.h" 14a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch#include "content/public/test/test_browser_thread_bundle.h" 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/test/test_renderer_host.h" 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#if defined(OS_CHROMEOS) 19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "chrome/browser/chromeos/login/users/user_manager.h" 20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/browser/chromeos/settings/cros_settings.h" 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/browser/chromeos/settings/device_settings_service.h" 22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif 23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_WIN) 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/base/win/scoped_ole_initializer.h" 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class GURL; 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#if defined(USE_ASH) 31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace ash { 32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace test { 33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)class AshTestHelper; 34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif 37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(USE_AURA) 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace aura { 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace test { 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class AuraTestHelper; 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#if defined(TOOLKIT_VIEWS) 475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)namespace views { 485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)class ViewsDelegate; 495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif 515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace content { 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class NavigationController; 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebContents; 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Base class for browser based unit tests. BrowserWithTestWindowTest creates a 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Browser with a TestingProfile and TestBrowserWindow. To add a tab use 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// AddTab. For example, the following adds a tab and navigates to 602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// two URLs that target the TestWebContents: 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// // Add a new tab and navigate it. This will be at index 0. 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// AddTab(browser(), GURL("http://foo/1")); 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// NavigationController* controller = 652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// &browser()->tab_strip_model()->GetWebContentsAt(0)->GetController(); 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// // Navigate somewhere else. 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// GURL url2("http://foo/2"); 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// NavigateAndCommit(controller, url2); 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// // This is equivalent to the above, and lets you test pending navigations. 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// browser()->OpenURL(OpenURLParams( 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// GURL("http://foo/2"), GURL(), CURRENT_TAB, 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// content::PAGE_TRANSITION_TYPED, false)); 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// CommitPendingLoad(controller); 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Subclasses must invoke BrowserWithTestWindowTest::SetUp as it is responsible 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// for creating the various objects of this class. 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class BrowserWithTestWindowTest : public testing::Test { 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Creates a BrowserWithTestWindowTest for which the initial window will be 825d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // a tabbed browser created on the native desktop, which is not a hosted app. 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) BrowserWithTestWindowTest(); 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Creates a BrowserWithTestWindowTest for which the initial window will be 865d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // the specified type. 875d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) BrowserWithTestWindowTest(Browser::Type browser_type, 885d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) chrome::HostDesktopType host_desktop_type, 895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) bool hosted_app); 905d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 915d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual ~BrowserWithTestWindowTest(); 92c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SetUp() OVERRIDE; 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void TearDown() OVERRIDE; 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) protected: 97c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) BrowserWindow* window() const { return window_.get(); } 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Browser* browser() const { return browser_.get(); } 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_browser(Browser* browser) { 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) browser_.reset(browser); 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 103c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) Browser* release_browser() WARN_UNUSED_RESULT { 104c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return browser_.release(); 105c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1071e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) TestingProfile* profile() const { return profile_; } 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1091e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) TestingProfile* GetProfile() { return profile_; } 1107d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 1117d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) BrowserWindow* release_browser_window() WARN_UNUSED_RESULT { 1127d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return window_.release(); 1137d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) } 1147d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Adds a tab to |browser| with the given URL and commits the load. 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // This is a convenience function. The new tab will be added at index 0. 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void AddTab(Browser* browser, const GURL& url); 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Commits the pending load on the given controller. It will keep the 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // URL of the pending load. If there is no pending load, this does nothing. 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void CommitPendingLoad(content::NavigationController* controller); 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Creates a pending navigation on the given navigation controller to the 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // given URL with the default parameters and the commits the load with a page 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // ID one larger than any seen. This emulates what happens on a new 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // navigation. 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void NavigateAndCommit(content::NavigationController* controller, 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const GURL& url); 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Navigates the current tab. This is a wrapper around NavigateAndCommit. 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void NavigateAndCommitActiveTab(const GURL& url); 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Set the |title| of the current tab. 1345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) void NavigateAndCommitActiveTabWithTitle(Browser* browser, 1355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const GURL& url, 1365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const base::string16& title); 1372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Destroys the browser, window, and profile created by this class. This is 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // invoked from the destructor. 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void DestroyBrowserAndProfile(); 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Creates the profile used by this test. The caller owns the return value. 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual TestingProfile* CreateProfile(); 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1451e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) // Destroys the profile which was created through |CreateProfile|. 1461e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) virtual void DestroyProfile(TestingProfile* profile); 1471e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 148c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Creates the BrowserWindow used by this test. The caller owns the return 149c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // value. Can return NULL to use the default window created by Browser. 150c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual BrowserWindow* CreateBrowserWindow(); 151c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Creates the browser given |profile|, |browser_type|, |hosted_app|, 1535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // |host_desktop_type| and |browser_window|. The caller owns the return value. 154a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) virtual Browser* CreateBrowser(Profile* profile, 1555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) Browser::Type browser_type, 1565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) bool hosted_app, 157a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) chrome::HostDesktopType host_desktop_type, 158a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) BrowserWindow* browser_window); 159a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 160cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) private: 161cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#if !defined(OS_CHROMEOS) && defined(TOOLKIT_VIEWS) 1625d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Creates the ViewsDelegate to use, may be overriden to create a different 1635d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // ViewsDelegate. 164cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) views::ViewsDelegate* CreateViewsDelegate(); 1655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif 1665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // We need to create a MessageLoop, otherwise a bunch of things fails. 168a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch content::TestBrowserThreadBundle thread_bundle_; 1692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::ShadowingAtExitManager at_exit_manager_; 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 171c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#if defined(OS_CHROMEOS) 172c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) chromeos::ScopedTestDeviceSettingsService test_device_settings_service_; 173c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) chromeos::ScopedTestCrosSettings test_cros_settings_; 174c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) chromeos::ScopedTestUserManager test_user_manager_; 175c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif 176c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1771e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) // The profile will automatically be destroyed by TearDown using the 1781e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) // |DestroyProfile()| function - which can be overwritten by derived testing 1791e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) // frameworks. 1801e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) TestingProfile* profile_; 181c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) scoped_ptr<BrowserWindow> window_; // Usually a TestBrowserWindow. 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<Browser> browser_; 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The existence of this object enables tests via 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // RenderViewHostTester. 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) content::RenderViewHostTestEnabler rvh_test_enabler_; 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 188c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#if defined(USE_ASH) 189c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) scoped_ptr<ash::test::AshTestHelper> ash_test_helper_; 190c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(USE_AURA) 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<aura::test::AuraTestHelper> aura_test_helper_; 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1955d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#if defined(TOOLKIT_VIEWS) 1965d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) scoped_ptr<views::ViewsDelegate> views_delegate_; 1975d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif 1985d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_WIN) 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ui::ScopedOleInitializer ole_initializer_; 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2035d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // The type of browser to create (tabbed or popup). 2045d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) Browser::Type browser_type_; 2055d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 2062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // The desktop to create the initial window on. 2072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) chrome::HostDesktopType host_desktop_type_; 2082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2095d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Whether the browser is part of a hosted app. 2105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) bool hosted_app_; 2115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(BrowserWithTestWindowTest); 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // CHROME_TEST_BASE_BROWSER_WITH_TEST_WINDOW_TEST_H_ 216