diff options
author | jamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-27 08:22:54 +0000 |
---|---|---|
committer | jamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-27 08:22:54 +0000 |
commit | 6a414ffa82da567ae225bf5ec59acbf2022eb496 (patch) | |
tree | 81ad20ae2a52d84efe7663838a4ce15df6f9747f /chrome/browser/ui/browser_command_controller_unittest.cc | |
parent | e4e66f9438f65f57f229fd083b7e5f058d9881af (diff) | |
download | chromium_src-6a414ffa82da567ae225bf5ec59acbf2022eb496.zip chromium_src-6a414ffa82da567ae225bf5ec59acbf2022eb496.tar.gz chromium_src-6a414ffa82da567ae225bf5ec59acbf2022eb496.tar.bz2 |
Reland ash: Use immersive mode for fullscreen
* Remove immersive mode button from maximized window frame
* Tie immersive mode to browser-fullscreen only, keep tab-fullscreen
with existing UI
* Size button exits immersive mode
* Add ImageButton::GetImage for testing
* Most browser commands are enabled in immersive fullscreen
BUG=177549
TEST=added to browser_tests views_unittests ash_unittests
Original review: https://codereview.chromium.org/12316086/
Review URL: https://chromiumcodereview.appspot.com/12328119
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@184908 0039d316-1c4b-4281-b951-d872f2087c98
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)); +} |