summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/browser_command_controller_unittest.cc
diff options
context:
space:
mode:
authorjamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-27 08:22:54 +0000
committerjamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-27 08:22:54 +0000
commit6a414ffa82da567ae225bf5ec59acbf2022eb496 (patch)
tree81ad20ae2a52d84efe7663838a4ce15df6f9747f /chrome/browser/ui/browser_command_controller_unittest.cc
parente4e66f9438f65f57f229fd083b7e5f058d9881af (diff)
downloadchromium_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.cc140
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));
+}