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

Side by Side Diff: chrome/browser/ui/views/frame/browser_view_browsertest.cc

Issue 11411250: Immersive mode reveals the tabstrip/omnibox on top of web content (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: update comment Created 8 years 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/views/frame/browser_view.h" 5 #include "chrome/browser/ui/views/frame/browser_view.h"
6 6
7 #include "chrome/browser/ui/browser_commands.h" 7 #include "chrome/browser/ui/browser_commands.h"
8 #include "chrome/browser/ui/views/immersive_mode_controller.h" 8 #include "chrome/browser/ui/views/immersive_mode_controller.h"
9 #include "chrome/browser/ui/views/location_bar/location_bar_view.h" 9 #include "chrome/browser/ui/views/location_bar/location_bar_view.h"
10 #include "chrome/browser/ui/views/tabs/tab_strip.h" 10 #include "chrome/browser/ui/views/tabs/tab_strip.h"
11 #include "chrome/test/base/in_process_browser_test.h" 11 #include "chrome/test/base/in_process_browser_test.h"
12 #include "ui/compositor/layer_animator.h"
12 #include "ui/views/focus/focus_manager.h" 13 #include "ui/views/focus/focus_manager.h"
13 #include "ui/views/view.h"
14 14
15 using views::FocusManager; 15 using views::FocusManager;
16 using views::View;
17 16
18 typedef InProcessBrowserTest BrowserViewTest; 17 typedef InProcessBrowserTest BrowserViewTest;
19 18
20 // Active window and focus testing is not reliable on Windows crbug.com/79493 19 // Active window and focus testing is not reliable on Windows crbug.com/79493
21 #if defined(OS_WIN) 20 #if defined(OS_WIN)
22 #define MAYBE_FullscreenClearsFocus DISABLED_FullscreenClearsFocus 21 #define MAYBE_FullscreenClearsFocus DISABLED_FullscreenClearsFocus
23 #else 22 #else
24 #define MAYBE_FullscreenClearsFocus FullscreenClearsFocus 23 #define MAYBE_FullscreenClearsFocus FullscreenClearsFocus
25 #endif 24 #endif
26 IN_PROC_BROWSER_TEST_F(BrowserViewTest, MAYBE_FullscreenClearsFocus) { 25 IN_PROC_BROWSER_TEST_F(BrowserViewTest, MAYBE_FullscreenClearsFocus) {
27 BrowserView* browser_view = static_cast<BrowserView*>(browser()->window()); 26 BrowserView* browser_view = static_cast<BrowserView*>(browser()->window());
28 LocationBarView* location_bar_view = browser_view->GetLocationBarView(); 27 LocationBarView* location_bar_view = browser_view->GetLocationBarView();
29 FocusManager* focus_manager = browser_view->GetFocusManager(); 28 FocusManager* focus_manager = browser_view->GetFocusManager();
30 29
31 // Focus starts in the location bar or one of its children. 30 // Focus starts in the location bar or one of its children.
32 EXPECT_TRUE(location_bar_view->Contains(focus_manager->GetFocusedView())); 31 EXPECT_TRUE(location_bar_view->Contains(focus_manager->GetFocusedView()));
33 32
34 chrome::ToggleFullscreenMode(browser()); 33 chrome::ToggleFullscreenMode(browser());
35 EXPECT_TRUE(browser_view->IsFullscreen()); 34 EXPECT_TRUE(browser_view->IsFullscreen());
36 35
37 // Focus is released from the location bar. 36 // Focus is released from the location bar.
38 EXPECT_FALSE(location_bar_view->Contains(focus_manager->GetFocusedView())); 37 EXPECT_FALSE(location_bar_view->Contains(focus_manager->GetFocusedView()));
39 } 38 }
40 39
41 IN_PROC_BROWSER_TEST_F(BrowserViewTest, ImmersiveMode) { 40 IN_PROC_BROWSER_TEST_F(BrowserViewTest, ImmersiveMode) {
41 ui::LayerAnimator::set_disable_animations_for_test(true);
42
42 BrowserView* browser_view = static_cast<BrowserView*>(browser()->window()); 43 BrowserView* browser_view = static_cast<BrowserView*>(browser()->window());
43 ImmersiveModeController* controller = 44 ImmersiveModeController* controller =
44 browser_view->immersive_mode_controller(); 45 browser_view->immersive_mode_controller();
45 46
46 // Immersive mode is not on by default. 47 // Immersive mode is not on by default.
47 EXPECT_FALSE(controller->enabled()); 48 EXPECT_FALSE(controller->enabled());
48 EXPECT_FALSE(controller->ShouldHideTopViews()); 49 EXPECT_FALSE(controller->ShouldHideTopViews());
49 50
50 // Top-of-window views are visible. 51 // Top-of-window views are visible.
51 EXPECT_TRUE(browser_view->IsTabStripVisible()); 52 EXPECT_TRUE(browser_view->IsTabStripVisible());
52 EXPECT_TRUE(browser_view->IsToolbarVisible()); 53 EXPECT_TRUE(browser_view->IsToolbarVisible());
53 54
54 // Turning immersive mode on sets the toolbar to immersive style and hides 55 // Turning immersive mode on sets the toolbar to immersive style and hides
55 // the top-of-window views while leaving the tab strip visible. 56 // the top-of-window views while leaving the tab strip visible.
56 controller->SetEnabled(true); 57 controller->SetEnabled(true);
57 EXPECT_TRUE(controller->enabled()); 58 EXPECT_TRUE(controller->enabled());
58 EXPECT_TRUE(controller->ShouldHideTopViews()); 59 EXPECT_TRUE(controller->ShouldHideTopViews());
60 EXPECT_FALSE(controller->IsRevealed());
59 EXPECT_TRUE(browser_view->tabstrip()->IsImmersiveStyle()); 61 EXPECT_TRUE(browser_view->tabstrip()->IsImmersiveStyle());
60 EXPECT_TRUE(browser_view->IsTabStripVisible()); 62 EXPECT_TRUE(browser_view->IsTabStripVisible());
61 EXPECT_FALSE(browser_view->IsToolbarVisible()); 63 EXPECT_FALSE(browser_view->IsToolbarVisible());
62 64
63 // Trigger a reveal keeps us in immersive mode, but top-of-window views 65 // Trigger a reveal keeps us in immersive mode, but top-of-window views
64 // become visible. 66 // become visible.
65 controller->RevealTopViews(); 67 controller->StartRevealForTest();
66 EXPECT_TRUE(controller->enabled()); 68 EXPECT_TRUE(controller->enabled());
67 EXPECT_FALSE(controller->ShouldHideTopViews()); 69 EXPECT_FALSE(controller->ShouldHideTopViews());
70 EXPECT_TRUE(controller->IsRevealed());
68 EXPECT_FALSE(browser_view->tabstrip()->IsImmersiveStyle()); 71 EXPECT_FALSE(browser_view->tabstrip()->IsImmersiveStyle());
69 EXPECT_TRUE(browser_view->IsTabStripVisible()); 72 EXPECT_TRUE(browser_view->IsTabStripVisible());
70 EXPECT_TRUE(browser_view->IsToolbarVisible()); 73 EXPECT_TRUE(browser_view->IsToolbarVisible());
74
75 // Ending a reveal keeps us in immersive mode, but toolbar goes invisible.
76 controller->EndRevealForTest();
77 EXPECT_TRUE(controller->enabled());
78 EXPECT_TRUE(controller->ShouldHideTopViews());
79 EXPECT_FALSE(controller->IsRevealed());
80 EXPECT_TRUE(browser_view->tabstrip()->IsImmersiveStyle());
81 EXPECT_TRUE(browser_view->IsTabStripVisible());
82 EXPECT_FALSE(browser_view->IsToolbarVisible());
83
84 // Disabling immersive mode puts us back to the beginning.
85 controller->SetEnabled(false);
86 EXPECT_FALSE(controller->enabled());
87 EXPECT_FALSE(controller->ShouldHideTopViews());
88 EXPECT_FALSE(controller->IsRevealed());
89 EXPECT_FALSE(browser_view->tabstrip()->IsImmersiveStyle());
90 EXPECT_TRUE(browser_view->IsTabStripVisible());
91 EXPECT_TRUE(browser_view->IsToolbarVisible());
92
93 // Disabling immersive mode while we are revealed should take us back to
94 // the beginning.
95 controller->SetEnabled(true);
96 controller->StartRevealForTest();
97 controller->SetEnabled(false);
98 EXPECT_FALSE(controller->enabled());
99 EXPECT_FALSE(controller->ShouldHideTopViews());
100 EXPECT_FALSE(controller->IsRevealed());
101 EXPECT_FALSE(browser_view->tabstrip()->IsImmersiveStyle());
102 EXPECT_TRUE(browser_view->IsTabStripVisible());
103 EXPECT_TRUE(browser_view->IsToolbarVisible());
71 } 104 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/frame/browser_view.cc ('k') | chrome/browser/ui/views/frame/browser_view_layout.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698