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.
5 #ifndef CHROME_TEST_BASE_TEST_BROWSER_WINDOW_H_
6 #define CHROME_TEST_BASE_TEST_BROWSER_WINDOW_H_
8 #include "base/basictypes.h"
9 #include "base/compiler_specific.h"
10 #include "build/build_config.h"
11 #include "chrome/browser/download/test_download_shelf.h"
12 #include "chrome/browser/ui/browser.h"
13 #include "chrome/browser/ui/browser_window.h"
14 #include "chrome/browser/ui/location_bar/location_bar.h"
16 class LocationBarTesting
;
19 namespace extensions
{
23 // An implementation of BrowserWindow used for testing. TestBrowserWindow only
24 // contains a valid LocationBar, all other getters return NULL.
25 // See BrowserWithTestWindowTest for an example of using this class.
26 class TestBrowserWindow
: public BrowserWindow
{
29 ~TestBrowserWindow() override
;
32 void Show() override
{}
33 void ShowInactive() override
{}
34 void Hide() override
{}
35 void SetBounds(const gfx::Rect
& bounds
) override
{}
36 void Close() override
{}
37 void Activate() override
{}
38 void Deactivate() override
{}
39 bool IsActive() const override
;
40 void FlashFrame(bool flash
) override
{}
41 bool IsAlwaysOnTop() const override
;
42 void SetAlwaysOnTop(bool always_on_top
) override
{}
43 gfx::NativeWindow
GetNativeWindow() const override
;
44 StatusBubble
* GetStatusBubble() override
;
45 void UpdateTitleBar() override
{}
46 void BookmarkBarStateChanged(
47 BookmarkBar::AnimateChangeType change_type
) override
{}
48 void UpdateDevTools() override
{}
49 void UpdateLoadingAnimations(bool should_animate
) override
{}
50 void SetStarredState(bool is_starred
) override
{}
51 void SetTranslateIconToggled(bool is_lit
) override
{}
52 void OnActiveTabChanged(content::WebContents
* old_contents
,
53 content::WebContents
* new_contents
,
55 int reason
) override
{}
56 void ZoomChangedForActiveTab(bool can_show_bubble
) override
{}
57 gfx::Rect
GetRestoredBounds() const override
;
58 ui::WindowShowState
GetRestoredState() const override
;
59 gfx::Rect
GetBounds() const override
;
60 bool IsMaximized() const override
;
61 bool IsMinimized() const override
;
62 void Maximize() override
{}
63 void Minimize() override
{}
64 void Restore() override
{}
65 void EnterFullscreen(const GURL
& url
,
66 ExclusiveAccessBubbleType type
,
67 bool with_toolbar
) override
{}
68 void ExitFullscreen() override
{}
69 void UpdateExclusiveAccessExitBubbleContent(
71 ExclusiveAccessBubbleType bubble_type
) override
{}
72 bool ShouldHideUIForFullscreen() const override
;
73 bool IsFullscreen() const override
;
74 bool IsFullscreenBubbleVisible() const override
;
75 bool SupportsFullscreenWithToolbar() const override
;
76 void UpdateFullscreenWithToolbar(bool with_toolbar
) override
;
77 bool IsFullscreenWithToolbar() const override
;
79 void SetMetroSnapMode(bool enable
) override
{}
80 bool IsInMetroSnapMode() const override
;
82 LocationBar
* GetLocationBar() const override
;
83 void SetFocusToLocationBar(bool select_all
) override
{}
84 void UpdateReloadStopState(bool is_loading
, bool force
) override
{}
85 void UpdateToolbar(content::WebContents
* contents
) override
{}
86 void ResetToolbarTabState(content::WebContents
* contents
) override
{}
87 void FocusToolbar() override
{}
88 void ToolbarSizeChanged(bool is_animating
) override
{}
89 void FocusAppMenu() override
{}
90 void FocusBookmarksToolbar() override
{}
91 void FocusInfobars() override
{}
92 void RotatePaneFocus(bool forwards
) override
{}
93 void ShowAppMenu() override
{}
94 bool PreHandleKeyboardEvent(const content::NativeWebKeyboardEvent
& event
,
95 bool* is_keyboard_shortcut
) override
;
96 void HandleKeyboardEvent(
97 const content::NativeWebKeyboardEvent
& event
) override
{}
99 bool IsBookmarkBarVisible() const override
;
100 bool IsBookmarkBarAnimating() const override
;
101 bool IsTabStripEditable() const override
;
102 bool IsToolbarVisible() const override
;
103 gfx::Rect
GetRootWindowResizerRect() const override
;
104 void ConfirmAddSearchProvider(TemplateURL
* template_url
,
105 Profile
* profile
) override
{}
106 void ShowUpdateChromeDialog() override
{}
107 void ShowBookmarkBubble(const GURL
& url
, bool already_bookmarked
) override
{}
108 void ShowBookmarkAppBubble(
109 const WebApplicationInfo
& web_app_info
,
110 const ShowBookmarkAppBubbleCallback
& callback
) override
{}
111 void ShowTranslateBubble(content::WebContents
* contents
,
112 translate::TranslateStep step
,
113 translate::TranslateErrors::Type error_type
,
114 bool is_user_gesture
) override
{}
115 bool ShowSessionCrashedBubble() override
;
116 bool IsProfileResetBubbleSupported() const override
;
117 GlobalErrorBubbleViewBase
* ShowProfileResetBubble(
118 const base::WeakPtr
<ProfileResetGlobalError
>& global_error
) override
;
119 #if defined(ENABLE_ONE_CLICK_SIGNIN)
120 void ShowOneClickSigninBubble(
121 OneClickSigninBubbleType type
,
122 const base::string16
& email
,
123 const base::string16
& error_message
,
124 const StartSyncCallback
& start_sync_callback
) override
{}
126 bool IsDownloadShelfVisible() const override
;
127 DownloadShelf
* GetDownloadShelf() override
;
128 void ConfirmBrowserCloseWithPendingDownloads(
130 Browser::DownloadClosePreventionType dialog_type
,
132 const base::Callback
<void(bool)>& callback
) override
{}
133 void UserChangedTheme() override
{}
134 void ShowWebsiteSettings(Profile
* profile
,
135 content::WebContents
* web_contents
,
137 const content::SSLStatus
& ssl
) override
{}
138 void CutCopyPaste(int command_id
) override
{}
139 WindowOpenDisposition
GetDispositionForPopupBounds(
140 const gfx::Rect
& bounds
) override
;
141 FindBar
* CreateFindBar() override
;
142 web_modal::WebContentsModalDialogHost
* GetWebContentsModalDialogHost()
144 void ShowAvatarBubbleFromAvatarButton(
145 AvatarBubbleMode mode
,
146 const signin::ManageAccountsParams
& manage_accounts_params
) override
{}
147 int GetRenderViewHeightInsetWithDetachedBookmarkBar() override
;
148 void ExecuteExtensionCommand(const extensions::Extension
* extension
,
149 const extensions::Command
& command
) override
;
150 ExclusiveAccessContext
* GetExclusiveAccessContext() override
;
153 void DestroyBrowser() override
{}
156 class TestLocationBar
: public LocationBar
{
158 TestLocationBar() : LocationBar(NULL
) {}
159 ~TestLocationBar() override
{}
162 void ShowFirstRunBubble() override
{}
163 GURL
GetDestinationURL() const override
;
164 WindowOpenDisposition
GetWindowOpenDisposition() const override
;
165 ui::PageTransition
GetPageTransition() const override
;
166 void AcceptInput() override
{}
167 void FocusLocation(bool select_all
) override
{}
168 void FocusSearch() override
{}
169 void UpdateContentSettingsIcons() override
{}
170 void UpdateManagePasswordsIconAndBubble() override
{}
171 void UpdatePageActions() override
{}
172 void UpdateBookmarkStarVisibility() override
{}
173 void UpdateLocationBarVisibility(bool visible
, bool animate
) override
{}
174 bool ShowPageActionPopup(const extensions::Extension
* extension
,
175 bool grant_active_tab
) override
;
176 void UpdateOpenPDFInReaderPrompt() override
{}
177 void SaveStateToContents(content::WebContents
* contents
) override
{}
178 void Revert() override
{}
179 const OmniboxView
* GetOmniboxView() const override
;
180 OmniboxView
* GetOmniboxView() override
;
181 LocationBarTesting
* GetLocationBarForTesting() override
;
184 DISALLOW_COPY_AND_ASSIGN(TestLocationBar
);
187 TestDownloadShelf download_shelf_
;
188 TestLocationBar location_bar_
;
190 DISALLOW_COPY_AND_ASSIGN(TestBrowserWindow
);
193 // Handles destroying a TestBrowserWindow when the Browser it is attached to is
195 class TestBrowserWindowOwner
: public chrome::BrowserListObserver
{
197 explicit TestBrowserWindowOwner(TestBrowserWindow
* window
);
198 ~TestBrowserWindowOwner() override
;
201 // Overridden from BrowserListObserver:
202 void OnBrowserRemoved(Browser
* browser
) override
;
203 scoped_ptr
<TestBrowserWindow
> window_
;
205 DISALLOW_COPY_AND_ASSIGN(TestBrowserWindowOwner
);
210 // Helper that handle the lifetime of TestBrowserWindow instances.
211 scoped_ptr
<Browser
> CreateBrowserWithTestWindowForParams(
212 Browser::CreateParams
* params
);
214 } // namespace chrome
216 #endif // CHROME_TEST_BASE_TEST_BROWSER_WINDOW_H_