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 BrowserWindowTesting* GetBrowserWindowTesting() override;
45 StatusBubble* GetStatusBubble() override;
46 void UpdateTitleBar() override {}
47 void BookmarkBarStateChanged(
48 BookmarkBar::AnimateChangeType change_type) override {}
49 void UpdateDevTools() override {}
50 void UpdateLoadingAnimations(bool should_animate) override {}
51 void SetStarredState(bool is_starred) override {}
52 void SetTranslateIconToggled(bool is_lit) override {}
53 void OnActiveTabChanged(content::WebContents* old_contents,
54 content::WebContents* new_contents,
56 int reason) override {}
57 void ZoomChangedForActiveTab(bool can_show_bubble) override {}
58 gfx::Rect GetRestoredBounds() const override;
59 ui::WindowShowState GetRestoredState() const override;
60 gfx::Rect GetBounds() const override;
61 bool IsMaximized() const override;
62 bool IsMinimized() const override;
63 void Maximize() override {}
64 void Minimize() override {}
65 void Restore() override {}
66 void EnterFullscreen(const GURL& url,
67 FullscreenExitBubbleType type) override {}
68 void ExitFullscreen() override {}
69 void UpdateFullscreenExitBubbleContent(
71 FullscreenExitBubbleType bubble_type) override {}
72 bool ShouldHideUIForFullscreen() const override;
73 bool IsFullscreen() const override;
75 virtual void SetMetroSnapMode(bool enable) override {}
76 virtual bool IsInMetroSnapMode() const override;
78 bool IsFullscreenBubbleVisible() const override;
79 LocationBar* GetLocationBar() const override;
80 void SetFocusToLocationBar(bool select_all) override {}
81 void UpdateReloadStopState(bool is_loading, bool force) override {}
82 void UpdateToolbar(content::WebContents* contents) override {}
83 void FocusToolbar() override {}
84 void FocusAppMenu() override {}
85 void FocusBookmarksToolbar() override {}
86 void FocusInfobars() override {}
87 void RotatePaneFocus(bool forwards) override {}
88 void ShowAppMenu() override {}
89 bool PreHandleKeyboardEvent(const content::NativeWebKeyboardEvent& event,
90 bool* is_keyboard_shortcut) override;
91 void HandleKeyboardEvent(
92 const content::NativeWebKeyboardEvent& event) override {}
94 bool IsBookmarkBarVisible() const override;
95 bool IsBookmarkBarAnimating() const override;
96 bool IsTabStripEditable() const override;
97 bool IsToolbarVisible() const override;
98 gfx::Rect GetRootWindowResizerRect() const override;
99 void ConfirmAddSearchProvider(TemplateURL* template_url,
100 Profile* profile) override {}
101 void ShowUpdateChromeDialog() override {}
102 void ShowBookmarkBubble(const GURL& url, bool already_bookmarked) override {}
103 void ShowBookmarkAppBubble(const WebApplicationInfo& web_app_info,
104 const std::string& extension_id) override {}
105 void ShowTranslateBubble(content::WebContents* contents,
106 translate::TranslateStep step,
107 translate::TranslateErrors::Type error_type,
108 bool is_user_gesture) override {}
109 #if defined(ENABLE_ONE_CLICK_SIGNIN)
110 void ShowOneClickSigninBubble(
111 OneClickSigninBubbleType type,
112 const base::string16& email,
113 const base::string16& error_message,
114 const StartSyncCallback& start_sync_callback) override {}
116 bool IsDownloadShelfVisible() const override;
117 DownloadShelf* GetDownloadShelf() override;
118 void ConfirmBrowserCloseWithPendingDownloads(
120 Browser::DownloadClosePreventionType dialog_type,
122 const base::Callback<void(bool)>& callback) override {}
123 void UserChangedTheme() override {}
124 int GetExtraRenderViewHeight() const override;
125 void WebContentsFocused(content::WebContents* contents) override {}
126 void ShowWebsiteSettings(Profile* profile,
127 content::WebContents* web_contents,
129 const content::SSLStatus& ssl) override {}
130 void Cut() override {}
131 void Copy() override {}
132 void Paste() override {}
133 #if defined(OS_MACOSX)
134 void EnterFullscreenWithChrome() override {}
135 void EnterFullscreenWithoutChrome() override {}
136 bool IsFullscreenWithChrome() override;
137 bool IsFullscreenWithoutChrome() override;
140 WindowOpenDisposition GetDispositionForPopupBounds(
141 const gfx::Rect& bounds) override;
142 FindBar* CreateFindBar() override;
143 web_modal::WebContentsModalDialogHost* GetWebContentsModalDialogHost()
145 void ShowAvatarBubble(content::WebContents* web_contents,
146 const gfx::Rect& rect) override {}
147 void ShowAvatarBubbleFromAvatarButton(
148 AvatarBubbleMode mode,
149 const signin::ManageAccountsParams& manage_accounts_params) override {}
150 int GetRenderViewHeightInsetWithDetachedBookmarkBar() override;
151 void ExecuteExtensionCommand(const extensions::Extension* extension,
152 const extensions::Command& command) override;
155 void DestroyBrowser() override {}
158 class TestLocationBar : public LocationBar {
160 TestLocationBar() : LocationBar(NULL) {}
161 ~TestLocationBar() override {}
164 void ShowFirstRunBubble() override {}
165 GURL GetDestinationURL() const override;
166 WindowOpenDisposition GetWindowOpenDisposition() const override;
167 ui::PageTransition GetPageTransition() const override;
168 void AcceptInput() override {}
169 void FocusLocation(bool select_all) override {}
170 void FocusSearch() override {}
171 void UpdateContentSettingsIcons() override {}
172 void UpdateManagePasswordsIconAndBubble() override {}
173 void UpdatePageActions() override {}
174 void InvalidatePageActions() override {}
175 void UpdateBookmarkStarVisibility() override {}
176 bool ShowPageActionPopup(const extensions::Extension* extension,
177 bool grant_active_tab) override;
178 void UpdateOpenPDFInReaderPrompt() override {}
179 void UpdateGeneratedCreditCardView() override {}
180 void SaveStateToContents(content::WebContents* contents) override {}
181 void Revert() override {}
182 const OmniboxView* GetOmniboxView() const override;
183 OmniboxView* GetOmniboxView() override;
184 LocationBarTesting* GetLocationBarForTesting() override;
187 DISALLOW_COPY_AND_ASSIGN(TestLocationBar);
190 TestDownloadShelf download_shelf_;
191 TestLocationBar location_bar_;
193 DISALLOW_COPY_AND_ASSIGN(TestBrowserWindow);
198 // Helper that handle the lifetime of TestBrowserWindow instances.
199 Browser* CreateBrowserWithTestWindowForParams(Browser::CreateParams* params);
201 } // namespace chrome
203 #endif // CHROME_TEST_BASE_TEST_BROWSER_WINDOW_H_