diff options
Diffstat (limited to 'chrome/browser/ui/browser_command_controller_unittest.cc')
-rw-r--r-- | chrome/browser/ui/browser_command_controller_unittest.cc | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/chrome/browser/ui/browser_command_controller_unittest.cc b/chrome/browser/ui/browser_command_controller_unittest.cc index 7188a95..5f412bf 100644 --- a/chrome/browser/ui/browser_command_controller_unittest.cc +++ b/chrome/browser/ui/browser_command_controller_unittest.cc @@ -11,6 +11,7 @@ #include "chrome/browser/ui/browser_commands.h" #include "chrome/browser/ui/browser_window_state.h" #include "chrome/test/base/browser_with_test_window_test.h" +#include "chrome/test/base/test_browser_window.h" #include "chrome/test/base/testing_browser_process.h" #include "chrome/test/base/testing_profile_manager.h" #include "content/public/browser/native_web_keyboard_event.h" @@ -178,3 +179,142 @@ TEST_F(BrowserCommandControllerTest, AvatarMenuDisabledWhenOnlyOneProfile) { testing_profile_manager.DeleteTestingProfile("p2"); } + +////////////////////////////////////////////////////////////////////////////// + +// A test browser window that can toggle fullscreen state. +class FullscreenTestBrowserWindow : public TestBrowserWindow { + public: + FullscreenTestBrowserWindow() : fullscreen_(false) {} + virtual ~FullscreenTestBrowserWindow() {} + + // TestBrowserWindow overrides: + virtual bool ShouldHideUIForFullscreen() const { + return fullscreen_; + } + virtual bool IsFullscreen() const OVERRIDE { + return fullscreen_; + } + virtual void EnterFullscreen( + const GURL& url, FullscreenExitBubbleType type) OVERRIDE { + fullscreen_ = true; + } + virtual void ExitFullscreen() OVERRIDE { + fullscreen_ = false; + } + + private: + bool fullscreen_; + + DISALLOW_COPY_AND_ASSIGN(FullscreenTestBrowserWindow); +}; + +// Test that uses FullscreenTestBrowserWindow for its window. +class BrowserCommandControllerFullscreenTest + : public BrowserWithTestWindowTest { + public: + BrowserCommandControllerFullscreenTest() {} + virtual ~BrowserCommandControllerFullscreenTest() {} + + // BrowserWithTestWindowTest overrides: + virtual void SetUp() { + // Must be set before base SetUp() is called. + set_window(new FullscreenTestBrowserWindow); + BrowserWithTestWindowTest::SetUp(); + } + + private: + DISALLOW_COPY_AND_ASSIGN(BrowserCommandControllerFullscreenTest); +}; + +TEST_F(BrowserCommandControllerFullscreenTest, + UpdateCommandsForFullscreenMode) { + // Defaults for a tabbed browser. + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_OPEN_CURRENT_URL)); + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_SHOW_AS_TAB)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_TOOLBAR)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_LOCATION)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_SEARCH)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_MENU_BAR)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_NEXT_PANE)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_PREVIOUS_PANE)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_BOOKMARKS)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_DEVELOPER_MENU)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FEEDBACK)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_OPTIONS)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_IMPORT_SETTINGS)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_EDIT_SEARCH_ENGINES)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_VIEW_PASSWORDS)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_ABOUT)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_SHOW_APP_MENU)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FULLSCREEN)); + + // Simulate going fullscreen. + chrome::ToggleFullscreenMode(browser()); + ASSERT_TRUE(browser()->window()->IsFullscreen()); + browser()->command_controller()->FullscreenStateChanged(); +#if defined(OS_MACOS) + // Mac leaves things enabled in fullscreen. + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_OPEN_CURRENT_URL)); + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_SHOW_AS_TAB)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_TOOLBAR)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_LOCATION)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_SEARCH)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_MENU_BAR)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_NEXT_PANE)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_PREVIOUS_PANE)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_BOOKMARKS)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_DEVELOPER_MENU)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FEEDBACK)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_OPTIONS)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_IMPORT_SETTINGS)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_EDIT_SEARCH_ENGINES)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_VIEW_PASSWORDS)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_ABOUT)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_SHOW_APP_MENU)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FULLSCREEN)); +#else + // Windows and GTK disable most commands in fullscreen. + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_OPEN_CURRENT_URL)); + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_SHOW_AS_TAB)); + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_TOOLBAR)); + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_LOCATION)); + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_SEARCH)); + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_MENU_BAR)); + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_NEXT_PANE)); + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_PREVIOUS_PANE)); + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_BOOKMARKS)); + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_DEVELOPER_MENU)); + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_FEEDBACK)); + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_OPTIONS)); + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_IMPORT_SETTINGS)); + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_EDIT_SEARCH_ENGINES)); + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_VIEW_PASSWORDS)); + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_ABOUT)); + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_SHOW_APP_MENU)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FULLSCREEN)); +#endif // defined(OS_MACOS) + + // Exit fullscreen. + chrome::ToggleFullscreenMode(browser()); + ASSERT_FALSE(browser()->window()->IsFullscreen()); + browser()->command_controller()->FullscreenStateChanged(); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_OPEN_CURRENT_URL)); + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_SHOW_AS_TAB)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_TOOLBAR)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_LOCATION)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_SEARCH)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_MENU_BAR)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_NEXT_PANE)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_PREVIOUS_PANE)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_BOOKMARKS)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_DEVELOPER_MENU)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FEEDBACK)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_OPTIONS)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_IMPORT_SETTINGS)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_EDIT_SEARCH_ENGINES)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_VIEW_PASSWORDS)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_ABOUT)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_SHOW_APP_MENU)); + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FULLSCREEN)); +} |