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 UpdateFullscreenExitBubbleContent(
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 virtual void SetMetroSnapMode(bool enable
) override
{}
80 virtual 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 FocusAppMenu() override
{}
89 void FocusBookmarksToolbar() override
{}
90 void FocusInfobars() override
{}
91 void RotatePaneFocus(bool forwards
) override
{}
92 void ShowAppMenu() override
{}
93 bool PreHandleKeyboardEvent(const content::NativeWebKeyboardEvent
& event
,
94 bool* is_keyboard_shortcut
) override
;
95 void HandleKeyboardEvent(
96 const content::NativeWebKeyboardEvent
& event
) override
{}
98 bool IsBookmarkBarVisible() const override
;
99 bool IsBookmarkBarAnimating() const override
;
100 bool IsTabStripEditable() const override
;
101 bool IsToolbarVisible() const override
;
102 gfx::Rect
GetRootWindowResizerRect() const override
;
103 void ConfirmAddSearchProvider(TemplateURL
* template_url
,
104 Profile
* profile
) override
{}
105 void ShowUpdateChromeDialog() override
{}
106 void ShowBookmarkBubble(const GURL
& url
, bool already_bookmarked
) override
{}
107 void ShowBookmarkAppBubble(const WebApplicationInfo
& web_app_info
,
108 const std::string
& extension_id
) override
{}
109 void ShowTranslateBubble(content::WebContents
* contents
,
110 translate::TranslateStep step
,
111 translate::TranslateErrors::Type error_type
,
112 bool is_user_gesture
) override
{}
113 bool ShowSessionCrashedBubble() override
;
114 bool IsProfileResetBubbleSupported() const override
;
115 GlobalErrorBubbleViewBase
* ShowProfileResetBubble(
116 const base::WeakPtr
<ProfileResetGlobalError
>& global_error
) override
;
117 #if defined(ENABLE_ONE_CLICK_SIGNIN)
118 void ShowOneClickSigninBubble(
119 OneClickSigninBubbleType type
,
120 const base::string16
& email
,
121 const base::string16
& error_message
,
122 const StartSyncCallback
& start_sync_callback
) override
{}
124 bool IsDownloadShelfVisible() const override
;
125 DownloadShelf
* GetDownloadShelf() override
;
126 void ConfirmBrowserCloseWithPendingDownloads(
128 Browser::DownloadClosePreventionType dialog_type
,
130 const base::Callback
<void(bool)>& callback
) override
{}
131 void UserChangedTheme() override
{}
132 int GetExtraRenderViewHeight() const override
;
133 void WebContentsFocused(content::WebContents
* contents
) override
{}
134 void ShowWebsiteSettings(Profile
* profile
,
135 content::WebContents
* web_contents
,
137 const content::SSLStatus
& ssl
) override
{}
138 void Cut() override
{}
139 void Copy() override
{}
140 void Paste() override
{}
141 WindowOpenDisposition
GetDispositionForPopupBounds(
142 const gfx::Rect
& bounds
) override
;
143 FindBar
* CreateFindBar() override
;
144 web_modal::WebContentsModalDialogHost
* GetWebContentsModalDialogHost()
146 void ShowAvatarBubbleFromAvatarButton(
147 AvatarBubbleMode mode
,
148 const signin::ManageAccountsParams
& manage_accounts_params
) override
{}
149 int GetRenderViewHeightInsetWithDetachedBookmarkBar() override
;
150 void ExecuteExtensionCommand(const extensions::Extension
* extension
,
151 const extensions::Command
& command
) override
;
154 void DestroyBrowser() override
{}
157 class TestLocationBar
: public LocationBar
{
159 TestLocationBar() : LocationBar(NULL
) {}
160 ~TestLocationBar() override
{}
163 void ShowFirstRunBubble() override
{}
164 GURL
GetDestinationURL() const override
;
165 WindowOpenDisposition
GetWindowOpenDisposition() const override
;
166 ui::PageTransition
GetPageTransition() const override
;
167 void AcceptInput() override
{}
168 void FocusLocation(bool select_all
) override
{}
169 void FocusSearch() override
{}
170 void UpdateContentSettingsIcons() override
{}
171 void UpdateManagePasswordsIconAndBubble() override
{}
172 void UpdatePageActions() override
{}
173 void UpdateBookmarkStarVisibility() override
{}
174 bool ShowPageActionPopup(const extensions::Extension
* extension
,
175 bool grant_active_tab
) override
;
176 void UpdateOpenPDFInReaderPrompt() override
{}
177 void UpdateGeneratedCreditCardView() override
{}
178 void SaveStateToContents(content::WebContents
* contents
) override
{}
179 void Revert() override
{}
180 const OmniboxView
* GetOmniboxView() const override
;
181 OmniboxView
* GetOmniboxView() override
;
182 LocationBarTesting
* GetLocationBarForTesting() override
;
185 DISALLOW_COPY_AND_ASSIGN(TestLocationBar
);
188 TestDownloadShelf download_shelf_
;
189 TestLocationBar location_bar_
;
191 DISALLOW_COPY_AND_ASSIGN(TestBrowserWindow
);
196 // Helper that handle the lifetime of TestBrowserWindow instances.
197 Browser
* CreateBrowserWithTestWindowForParams(Browser::CreateParams
* params
);
199 } // namespace chrome
201 #endif // CHROME_TEST_BASE_TEST_BROWSER_WINDOW_H_