// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "chrome/test/base/test_browser_window.h" #include "chrome/browser/ui/browser_list.h" #include "chrome/browser/ui/browser_list_observer.h" #include "ui/gfx/rect.h" // Helpers -------------------------------------------------------------------- namespace chrome { namespace { // Handles destroying a TestBrowserWindow when the Browser it is attached to is // destroyed. class TestBrowserWindowOwner : public chrome::BrowserListObserver { public: explicit TestBrowserWindowOwner(TestBrowserWindow* window) : window_(window) { BrowserList::AddObserver(this); } virtual ~TestBrowserWindowOwner() { BrowserList::RemoveObserver(this); } private: // Overridden from BrowserListObserver: virtual void OnBrowserRemoved(Browser* browser) OVERRIDE { if (browser->window() == window_.get()) delete this; } scoped_ptr<TestBrowserWindow> window_; DISALLOW_COPY_AND_ASSIGN(TestBrowserWindowOwner); }; } // namespace Browser* CreateBrowserWithTestWindowForParams(Browser::CreateParams* params) { TestBrowserWindow* window = new TestBrowserWindow; new TestBrowserWindowOwner(window); params->window = window; return new Browser(*params); } } // namespace chrome // TestBrowserWindow::TestLocationBar ----------------------------------------- GURL TestBrowserWindow::TestLocationBar::GetDestinationURL() const { return GURL(); } WindowOpenDisposition TestBrowserWindow::TestLocationBar::GetWindowOpenDisposition() const { return CURRENT_TAB; } content::PageTransition TestBrowserWindow::TestLocationBar::GetPageTransition() const { return content::PAGE_TRANSITION_LINK; } const OmniboxView* TestBrowserWindow::TestLocationBar::GetOmniboxView() const { return NULL; } OmniboxView* TestBrowserWindow::TestLocationBar::GetOmniboxView() { return NULL; } LocationBarTesting* TestBrowserWindow::TestLocationBar::GetLocationBarForTesting() { return NULL; } // TestBrowserWindow ---------------------------------------------------------- TestBrowserWindow::TestBrowserWindow() {} TestBrowserWindow::~TestBrowserWindow() {} bool TestBrowserWindow::IsActive() const { return false; } bool TestBrowserWindow::IsAlwaysOnTop() const { return false; } gfx::NativeWindow TestBrowserWindow::GetNativeWindow() { return NULL; } BrowserWindowTesting* TestBrowserWindow::GetBrowserWindowTesting() { return NULL; } StatusBubble* TestBrowserWindow::GetStatusBubble() { return NULL; } gfx::Rect TestBrowserWindow::GetRestoredBounds() const { return gfx::Rect(); } ui::WindowShowState TestBrowserWindow::GetRestoredState() const { return ui::SHOW_STATE_DEFAULT; } gfx::Rect TestBrowserWindow::GetBounds() const { return gfx::Rect(); } bool TestBrowserWindow::IsMaximized() const { return false; } bool TestBrowserWindow::IsMinimized() const { return false; } bool TestBrowserWindow::ShouldHideUIForFullscreen() const { return false; } bool TestBrowserWindow::IsFullscreen() const { return false; } #if defined(OS_WIN) bool TestBrowserWindow::IsInMetroSnapMode() const { return false; } #endif bool TestBrowserWindow::IsFullscreenBubbleVisible() const { return false; } LocationBar* TestBrowserWindow::GetLocationBar() const { return const_cast<TestLocationBar*>(&location_bar_); } bool TestBrowserWindow::PreHandleKeyboardEvent( const content::NativeWebKeyboardEvent& event, bool* is_keyboard_shortcut) { return false; } bool TestBrowserWindow::IsBookmarkBarVisible() const { return false; } bool TestBrowserWindow::IsBookmarkBarAnimating() const { return false; } bool TestBrowserWindow::IsTabStripEditable() const { return false; } bool TestBrowserWindow::IsToolbarVisible() const { return false; } gfx::Rect TestBrowserWindow::GetRootWindowResizerRect() const { return gfx::Rect(); } bool TestBrowserWindow::IsDownloadShelfVisible() const { return false; } DownloadShelf* TestBrowserWindow::GetDownloadShelf() { return &download_shelf_; } int TestBrowserWindow::GetExtraRenderViewHeight() const { return 0; } #if defined(OS_MACOSX) bool TestBrowserWindow::IsFullscreenWithChrome() { return false; } bool TestBrowserWindow::IsFullscreenWithoutChrome() { return false; } #endif WindowOpenDisposition TestBrowserWindow::GetDispositionForPopupBounds( const gfx::Rect& bounds) { return NEW_POPUP; } FindBar* TestBrowserWindow::CreateFindBar() { return NULL; } web_modal::WebContentsModalDialogHost* TestBrowserWindow::GetWebContentsModalDialogHost() { return NULL; } int TestBrowserWindow::GetRenderViewHeightInsetWithDetachedBookmarkBar() { return 0; } void TestBrowserWindow::ExecuteExtensionCommand( const extensions::Extension* extension, const extensions::Command& command) {} void TestBrowserWindow::ShowPageActionPopup( const extensions::Extension* extension) {} void TestBrowserWindow::ShowBrowserActionPopup( const extensions::Extension* extension) {}