Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(718)

Unified Diff: chrome/browser/ui/ash/chrome_shell_delegate_browsertest.cc

Issue 42353002: Introduce WindowStateDelegate::ToggleFullscreen (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: exclude accelerator_commands_browsertest on win Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/ash/chrome_shell_delegate_browsertest.cc
diff --git a/chrome/browser/ui/ash/chrome_shell_delegate_browsertest.cc b/chrome/browser/ui/ash/chrome_shell_delegate_browsertest.cc
deleted file mode 100644
index 6d30bb79a0ff70933c6316dbd231f66d9353efc7..0000000000000000000000000000000000000000
--- a/chrome/browser/ui/ash/chrome_shell_delegate_browsertest.cc
+++ /dev/null
@@ -1,192 +0,0 @@
-// 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/browser/ui/ash/chrome_shell_delegate.h"
-
-#include "apps/shell_window.h"
-#include "apps/ui/native_app_window.h"
-#include "ash/accelerators/accelerator_commands.h"
-#include "ash/ash_switches.h"
-#include "ash/shell.h"
-#include "ash/shell_delegate.h"
-#include "ash/wm/window_state.h"
-#include "base/command_line.h"
-#include "chrome/browser/apps/app_browsertest_util.h"
-#include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_commands.h"
-#include "chrome/browser/ui/browser_finder.h"
-#include "chrome/browser/ui/browser_window.h"
-#include "chrome/test/base/in_process_browser_test.h"
-#include "ui/aura/client/aura_constants.h"
-
-namespace {
-
-// Returns true if |window| is in immersive fullscreen. Infer whether |window|
-// is in immersive fullscreen based on whether the shelf is hidden when
-// |window| is fullscreen because DEPS does not allow the test to use
-// BrowserView. (This is not quite right because the shelf is hidden if a window
-// is in both immersive fullscreen and tab fullscreen.)
-bool IsInImmersiveFullscreen(BrowserWindow* browser_window) {
- ash::wm::WindowState* window_state = ash::wm::GetWindowState(
- browser_window->GetNativeWindow());
- return window_state->IsFullscreen() &&
- !window_state->hide_shelf_when_fullscreen();
-}
-
-} // namespace
-
-typedef InProcessBrowserTest ChromeShellDelegateBrowserTest;
-
-// TODO(oshima): Move these tests to ash once ToggleFullscreen is moved
-// to ash. crbug.com/309837.
-
-// Confirm that toggling window miximized works properly
-IN_PROC_BROWSER_TEST_F(ChromeShellDelegateBrowserTest, ToggleMaximized) {
- ash::ShellDelegate* shell_delegate = ash::Shell::GetInstance()->delegate();
- ASSERT_TRUE(shell_delegate);
- ash::wm::WindowState* window_state = ash::wm::GetActiveWindowState();
- ASSERT_TRUE(window_state);
-
- // When not in fullscreen, accelerators::ToggleMaximized toggles Maximized.
- EXPECT_FALSE(window_state->IsMaximized());
- ash::accelerators::ToggleMaximized();
- EXPECT_TRUE(window_state->IsMaximized());
- ash::accelerators::ToggleMaximized();
- EXPECT_FALSE(window_state->IsMaximized());
-
- // When in fullscreen accelerators::ToggleMaximized gets out of fullscreen.
- EXPECT_FALSE(window_state->IsFullscreen());
- Browser* browser = chrome::FindBrowserWithWindow(window_state->window());
- ASSERT_TRUE(browser);
- chrome::ToggleFullscreenMode(browser);
- EXPECT_TRUE(window_state->IsFullscreen());
- ash::accelerators::ToggleMaximized();
- EXPECT_FALSE(window_state->IsFullscreen());
- EXPECT_FALSE(window_state->IsMaximized());
- ash::accelerators::ToggleMaximized();
- EXPECT_FALSE(window_state->IsFullscreen());
- EXPECT_TRUE(window_state->IsMaximized());
-}
-
-// Confirm that toggling window fullscren works properly.
-IN_PROC_BROWSER_TEST_F(ChromeShellDelegateBrowserTest, ToggleFullscreen) {
- ash::ShellDelegate* shell_delegate = ash::Shell::GetInstance()->delegate();
- ASSERT_TRUE(shell_delegate);
-
- // 1) ToggleFullscreen() should toggle whether a tabbed browser window is in
- // immersive fullscreen.
- ASSERT_TRUE(browser()->is_type_tabbed());
- BrowserWindow* browser_window = browser()->window();
- ASSERT_TRUE(browser_window->IsActive());
- EXPECT_FALSE(browser_window->IsMaximized());
- EXPECT_FALSE(browser_window->IsFullscreen());
-
- shell_delegate->ToggleFullscreen();
- EXPECT_TRUE(browser_window->IsFullscreen());
- EXPECT_TRUE(IsInImmersiveFullscreen(browser_window));
-
- shell_delegate->ToggleFullscreen();
- EXPECT_FALSE(browser_window->IsMaximized());
- EXPECT_FALSE(browser_window->IsFullscreen());
-
- // 2) ToggleFullscreen() should have no effect on windows which cannot be
- // maximized.
- browser_window->GetNativeWindow()->SetProperty(aura::client::kCanMaximizeKey,
- false);
- shell_delegate->ToggleFullscreen();
- EXPECT_FALSE(browser_window->IsMaximized());
- EXPECT_FALSE(browser_window->IsFullscreen());
-
- // 3) ToggleFullscreen() should maximize v1 app browser windows which use
- // AppNonClientFrameViewAsh.
- // TODO(pkotwicz): Figure out if we actually want this behavior.
- Browser::CreateParams browser_create_params(Browser::TYPE_POPUP,
- browser()->profile(), chrome::HOST_DESKTOP_TYPE_NATIVE);
-#if defined(OS_WIN)
- browser_create_params.host_desktop_type = chrome::HOST_DESKTOP_TYPE_ASH;
-#endif // OS_WIN
- browser_create_params.app_name = "Test";
- browser_create_params.app_type = Browser::APP_TYPE_HOST;
-
- Browser* app_host_browser = new Browser(browser_create_params);
- ASSERT_TRUE(app_host_browser->is_app());
- AddBlankTabAndShow(app_host_browser);
- browser_window = app_host_browser->window();
- ASSERT_TRUE(browser_window->IsActive());
- EXPECT_FALSE(browser_window->IsMaximized());
- EXPECT_FALSE(browser_window->IsFullscreen());
-
- shell_delegate->ToggleFullscreen();
- EXPECT_TRUE(browser_window->IsMaximized());
-
- shell_delegate->ToggleFullscreen();
- EXPECT_FALSE(browser_window->IsMaximized());
- EXPECT_FALSE(browser_window->IsFullscreen());
-
- // 4) ToggleFullscreen() should put child windows of v1 apps into
- // non-immersive fullscreen.
- browser_create_params.host_desktop_type = chrome::HOST_DESKTOP_TYPE_NATIVE;
- browser_create_params.app_type = Browser::APP_TYPE_CHILD;
- Browser* app_child_browser = new Browser(browser_create_params);
- ASSERT_TRUE(app_child_browser->is_app());
- AddBlankTabAndShow(app_child_browser);
- browser_window = app_child_browser->window();
- ASSERT_TRUE(browser_window->IsActive());
- EXPECT_FALSE(browser_window->IsMaximized());
- EXPECT_FALSE(browser_window->IsFullscreen());
-
- shell_delegate->ToggleFullscreen();
- EXPECT_TRUE(browser_window->IsFullscreen());
- EXPECT_FALSE(IsInImmersiveFullscreen(browser_window));
-
- shell_delegate->ToggleFullscreen();
- EXPECT_FALSE(browser_window->IsMaximized());
- EXPECT_FALSE(browser_window->IsFullscreen());
-
- // 5) ToggleFullscreen() should put popup browser windows into non-immersive
- // fullscreen.
- browser_create_params.app_name = "";
- Browser* popup_browser = new Browser(browser_create_params);
- ASSERT_TRUE(popup_browser->is_type_popup());
- ASSERT_FALSE(popup_browser->is_app());
- AddBlankTabAndShow(popup_browser);
- browser_window = popup_browser->window();
- ASSERT_TRUE(browser_window->IsActive());
- EXPECT_FALSE(browser_window->IsMaximized());
- EXPECT_FALSE(browser_window->IsFullscreen());
-
- shell_delegate->ToggleFullscreen();
- EXPECT_TRUE(browser_window->IsFullscreen());
- EXPECT_FALSE(IsInImmersiveFullscreen(browser_window));
-
- shell_delegate->ToggleFullscreen();
- EXPECT_FALSE(browser_window->IsMaximized());
- EXPECT_FALSE(browser_window->IsFullscreen());
-}
-
-typedef extensions::PlatformAppBrowserTest
- ChromeShellDelegatePlatformAppBrowserTest;
-
-// Test that ToggleFullscreen() toggles the platform app's fullscreen state.
-IN_PROC_BROWSER_TEST_F(ChromeShellDelegatePlatformAppBrowserTest,
- ToggleFullscreenPlatformApp) {
- ash::ShellDelegate* shell_delegate = ash::Shell::GetInstance()->delegate();
- ASSERT_TRUE(shell_delegate);
-
- const extensions::Extension* extension = LoadAndLaunchPlatformApp("minimal");
- apps::ShellWindow* shell_window = CreateShellWindow(extension);
- apps::NativeAppWindow* app_window = shell_window->GetBaseWindow();
- ASSERT_TRUE(shell_window->GetBaseWindow()->IsActive());
- EXPECT_FALSE(app_window->IsMaximized());
- EXPECT_FALSE(app_window->IsFullscreen());
-
- shell_delegate->ToggleFullscreen();
- EXPECT_TRUE(app_window->IsFullscreen());
-
- shell_delegate->ToggleFullscreen();
- EXPECT_FALSE(app_window->IsMaximized());
- EXPECT_FALSE(app_window->IsFullscreen());
-
- CloseShellWindow(shell_window);
-}
« no previous file with comments | « chrome/browser/ui/ash/chrome_shell_delegate.cc ('k') | chrome/browser/ui/views/apps/native_app_window_views.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698