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

Side by Side Diff: apps/app_window_interactive_uitest.cc

Issue 166573005: Rename apps::ShellWindow to apps::AppWindow (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase, nits (rename) Created 6 years, 10 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « apps/app_window_geometry_cache_unittest.cc ('k') | apps/app_window_registry.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "apps/ui/native_app_window.h" 5 #include "apps/ui/native_app_window.h"
6 #include "chrome/browser/apps/app_browsertest_util.h" 6 #include "chrome/browser/apps/app_browsertest_util.h"
7 #include "chrome/browser/extensions/extension_test_message_listener.h" 7 #include "chrome/browser/extensions/extension_test_message_listener.h"
8 8
9 using extensions::PlatformAppBrowserTest; 9 using extensions::PlatformAppBrowserTest;
10 using extensions::Extension; 10 using extensions::Extension;
11 11
12 namespace apps { 12 namespace apps {
13 13
14 namespace { 14 namespace {
15 15
16 // TODO(jamescook): Move this to app_window/generic. http://crbug.com/344073
16 const char kDefaultTestApp[] = "shell_window/generic"; 17 const char kDefaultTestApp[] = "shell_window/generic";
17 18
18 class ShellWindowTest : public PlatformAppBrowserTest { 19 class AppWindowTest : public PlatformAppBrowserTest {
19 protected: 20 protected:
20 // Load the test app and create a window. The window must be closed by the 21 // Load the test app and create a window. The window must be closed by the
21 // caller in order to terminate the test. 22 // caller in order to terminate the test.
22 // |app_path| is the name of the test. 23 // |app_path| is the name of the test.
23 // |window_create_options| are the options that will be passed to 24 // |window_create_options| are the options that will be passed to
24 // chrome.app.window.create() in the test app. 25 // chrome.app.window.create() in the test app.
25 ShellWindow* OpenWindow(const char* app_path, 26 AppWindow* OpenWindow(const char* app_path,
26 const char* window_create_options) { 27 const char* window_create_options) {
27 ExtensionTestMessageListener launched_listener("launched", true); 28 ExtensionTestMessageListener launched_listener("launched", true);
28 ExtensionTestMessageListener loaded_listener("window_loaded", false); 29 ExtensionTestMessageListener loaded_listener("window_loaded", false);
29 30
30 // Load and launch the test app. 31 // Load and launch the test app.
31 const Extension* extension = LoadAndLaunchPlatformApp(app_path); 32 const Extension* extension = LoadAndLaunchPlatformApp(app_path);
32 EXPECT_TRUE(extension); 33 EXPECT_TRUE(extension);
33 EXPECT_TRUE(launched_listener.WaitUntilSatisfied()); 34 EXPECT_TRUE(launched_listener.WaitUntilSatisfied());
34 35
35 // Send the options for window creation. 36 // Send the options for window creation.
36 launched_listener.Reply(window_create_options); 37 launched_listener.Reply(window_create_options);
37 38
38 // Wait for the window to be opened and loaded. 39 // Wait for the window to be opened and loaded.
39 EXPECT_TRUE(loaded_listener.WaitUntilSatisfied()); 40 EXPECT_TRUE(loaded_listener.WaitUntilSatisfied());
40 41
41 EXPECT_EQ(1U, GetShellWindowCount()); 42 EXPECT_EQ(1U, GetAppWindowCount());
42 ShellWindow* shell_window = GetFirstShellWindow(); 43 AppWindow* app_window = GetFirstAppWindow();
43 return shell_window; 44 return app_window;
44 } 45 }
45 46
46 void CheckAlwaysOnTopToFullscreen(ShellWindow* window) { 47 void CheckAlwaysOnTopToFullscreen(AppWindow* window) {
47 ASSERT_TRUE(window->GetBaseWindow()->IsAlwaysOnTop()); 48 ASSERT_TRUE(window->GetBaseWindow()->IsAlwaysOnTop());
48 49
49 // The always-on-top property should be temporarily disabled when the window 50 // The always-on-top property should be temporarily disabled when the window
50 // enters fullscreen. 51 // enters fullscreen.
51 window->Fullscreen(); 52 window->Fullscreen();
52 EXPECT_FALSE(window->GetBaseWindow()->IsAlwaysOnTop()); 53 EXPECT_FALSE(window->GetBaseWindow()->IsAlwaysOnTop());
53 54
54 // From the API's point of view, the always-on-top property is enabled. 55 // From the API's point of view, the always-on-top property is enabled.
55 EXPECT_TRUE(window->IsAlwaysOnTop()); 56 EXPECT_TRUE(window->IsAlwaysOnTop());
56 57
57 // The always-on-top property is restored when the window exits fullscreen. 58 // The always-on-top property is restored when the window exits fullscreen.
58 window->Restore(); 59 window->Restore();
59 EXPECT_TRUE(window->GetBaseWindow()->IsAlwaysOnTop()); 60 EXPECT_TRUE(window->GetBaseWindow()->IsAlwaysOnTop());
60 } 61 }
61 62
62 void CheckNormalToFullscreen(ShellWindow* window) { 63 void CheckNormalToFullscreen(AppWindow* window) {
63 // If the always-on-top property is false, it should remain this way when 64 // If the always-on-top property is false, it should remain this way when
64 // entering and exiting fullscreen mode. 65 // entering and exiting fullscreen mode.
65 ASSERT_FALSE(window->GetBaseWindow()->IsAlwaysOnTop()); 66 ASSERT_FALSE(window->GetBaseWindow()->IsAlwaysOnTop());
66 window->Fullscreen(); 67 window->Fullscreen();
67 EXPECT_FALSE(window->GetBaseWindow()->IsAlwaysOnTop()); 68 EXPECT_FALSE(window->GetBaseWindow()->IsAlwaysOnTop());
68 window->Restore(); 69 window->Restore();
69 EXPECT_FALSE(window->GetBaseWindow()->IsAlwaysOnTop()); 70 EXPECT_FALSE(window->GetBaseWindow()->IsAlwaysOnTop());
70 } 71 }
71 72
72 void CheckFullscreenToAlwaysOnTop(ShellWindow* window) { 73 void CheckFullscreenToAlwaysOnTop(AppWindow* window) {
73 ASSERT_TRUE(window->GetBaseWindow()->IsFullscreenOrPending()); 74 ASSERT_TRUE(window->GetBaseWindow()->IsFullscreenOrPending());
74 75
75 // Now enable always-on-top at runtime and ensure the property does not get 76 // Now enable always-on-top at runtime and ensure the property does not get
76 // applied immediately because the window is in fullscreen mode. 77 // applied immediately because the window is in fullscreen mode.
77 window->SetAlwaysOnTop(true); 78 window->SetAlwaysOnTop(true);
78 EXPECT_FALSE(window->GetBaseWindow()->IsAlwaysOnTop()); 79 EXPECT_FALSE(window->GetBaseWindow()->IsAlwaysOnTop());
79 80
80 // From the API's point of view, the always-on-top property is enabled. 81 // From the API's point of view, the always-on-top property is enabled.
81 EXPECT_TRUE(window->IsAlwaysOnTop()); 82 EXPECT_TRUE(window->IsAlwaysOnTop());
82 83
83 // Ensure the always-on-top property is applied when exiting fullscreen. 84 // Ensure the always-on-top property is applied when exiting fullscreen.
84 window->Restore(); 85 window->Restore();
85 EXPECT_TRUE(window->GetBaseWindow()->IsAlwaysOnTop()); 86 EXPECT_TRUE(window->GetBaseWindow()->IsAlwaysOnTop());
86 } 87 }
87 }; 88 };
88 89
89 } // namespace 90 } // namespace
90 91
91 // Tests are flaky on Mac as transitioning to fullscreen is not instantaneous 92 // Tests are flaky on Mac as transitioning to fullscreen is not instantaneous
92 // and throws errors when entering/exiting fullscreen too quickly. 93 // and throws errors when entering/exiting fullscreen too quickly.
93 #if defined(OS_MACOSX) 94 #if defined(OS_MACOSX)
94 #define MAYBE_InitAlwaysOnTopToFullscreen DISABLED_InitAlwaysOnTopToFullscreen 95 #define MAYBE_InitAlwaysOnTopToFullscreen DISABLED_InitAlwaysOnTopToFullscreen
95 #else 96 #else
96 #define MAYBE_InitAlwaysOnTopToFullscreen InitAlwaysOnTopToFullscreen 97 #define MAYBE_InitAlwaysOnTopToFullscreen InitAlwaysOnTopToFullscreen
97 #endif 98 #endif
98 99
99 // Tests a window created with always-on-top enabled and ensures that the 100 // Tests a window created with always-on-top enabled and ensures that the
100 // property is temporarily switched off when entering fullscreen mode. 101 // property is temporarily switched off when entering fullscreen mode.
101 IN_PROC_BROWSER_TEST_F(ShellWindowTest, MAYBE_InitAlwaysOnTopToFullscreen) { 102 IN_PROC_BROWSER_TEST_F(AppWindowTest, MAYBE_InitAlwaysOnTopToFullscreen) {
102 ShellWindow* window = OpenWindow( 103 AppWindow* window = OpenWindow(kDefaultTestApp, "{ \"alwaysOnTop\": true }");
103 kDefaultTestApp, "{ \"alwaysOnTop\": true }");
104 ASSERT_TRUE(window); 104 ASSERT_TRUE(window);
105 CheckAlwaysOnTopToFullscreen(window); 105 CheckAlwaysOnTopToFullscreen(window);
106 106
107 window->SetAlwaysOnTop(false); 107 window->SetAlwaysOnTop(false);
108 CheckNormalToFullscreen(window); 108 CheckNormalToFullscreen(window);
109 109
110 CloseShellWindow(window); 110 CloseAppWindow(window);
111 } 111 }
112 112
113 #if defined(OS_MACOSX) 113 #if defined(OS_MACOSX)
114 #define MAYBE_RuntimeAlwaysOnTopToFullscreen DISABLED_RuntimeAlwaysOnTopToFullsc reen 114 #define MAYBE_RuntimeAlwaysOnTopToFullscreen \
115 DISABLED_RuntimeAlwaysOnTopToFullscreen
115 #else 116 #else
116 #define MAYBE_RuntimeAlwaysOnTopToFullscreen RuntimeAlwaysOnTopToFullscreen 117 #define MAYBE_RuntimeAlwaysOnTopToFullscreen RuntimeAlwaysOnTopToFullscreen
117 #endif 118 #endif
118 119
119 // Tests a window with always-on-top enabled at runtime and ensures that the 120 // Tests a window with always-on-top enabled at runtime and ensures that the
120 // property is temporarily switched off when entering fullscreen mode. 121 // property is temporarily switched off when entering fullscreen mode.
121 IN_PROC_BROWSER_TEST_F(ShellWindowTest, MAYBE_RuntimeAlwaysOnTopToFullscreen) { 122 IN_PROC_BROWSER_TEST_F(AppWindowTest, MAYBE_RuntimeAlwaysOnTopToFullscreen) {
122 ShellWindow* window = OpenWindow( 123 AppWindow* window = OpenWindow(kDefaultTestApp, "{}");
123 kDefaultTestApp, "{}");
124 ASSERT_TRUE(window); 124 ASSERT_TRUE(window);
125 CheckNormalToFullscreen(window); 125 CheckNormalToFullscreen(window);
126 126
127 window->SetAlwaysOnTop(true); 127 window->SetAlwaysOnTop(true);
128 CheckAlwaysOnTopToFullscreen(window); 128 CheckAlwaysOnTopToFullscreen(window);
129 129
130 CloseShellWindow(window); 130 CloseAppWindow(window);
131 } 131 }
132 132
133 #if defined(OS_MACOSX) 133 #if defined(OS_MACOSX)
134 #define MAYBE_InitFullscreenToAlwaysOnTop DISABLED_InitFullscreenToAlwaysOnTop 134 #define MAYBE_InitFullscreenToAlwaysOnTop DISABLED_InitFullscreenToAlwaysOnTop
135 #else 135 #else
136 #define MAYBE_InitFullscreenToAlwaysOnTop InitFullscreenToAlwaysOnTop 136 #define MAYBE_InitFullscreenToAlwaysOnTop InitFullscreenToAlwaysOnTop
137 #endif 137 #endif
138 138
139 // Tests a window created initially in fullscreen mode and ensures that the 139 // Tests a window created initially in fullscreen mode and ensures that the
140 // always-on-top property does not get applied until it exits fullscreen. 140 // always-on-top property does not get applied until it exits fullscreen.
141 IN_PROC_BROWSER_TEST_F(ShellWindowTest, MAYBE_InitFullscreenToAlwaysOnTop) { 141 IN_PROC_BROWSER_TEST_F(AppWindowTest, MAYBE_InitFullscreenToAlwaysOnTop) {
142 ShellWindow* window = OpenWindow( 142 AppWindow* window =
143 kDefaultTestApp, "{ \"state\": \"fullscreen\" }"); 143 OpenWindow(kDefaultTestApp, "{ \"state\": \"fullscreen\" }");
144 ASSERT_TRUE(window); 144 ASSERT_TRUE(window);
145 CheckFullscreenToAlwaysOnTop(window); 145 CheckFullscreenToAlwaysOnTop(window);
146 146
147 CloseShellWindow(window); 147 CloseAppWindow(window);
148 } 148 }
149 149
150 #if defined(OS_MACOSX) 150 #if defined(OS_MACOSX)
151 #define MAYBE_RuntimeFullscreenToAlwaysOnTop DISABLED_RuntimeFullscreenToAlwaysO nTop 151 #define MAYBE_RuntimeFullscreenToAlwaysOnTop \
152 DISABLED_RuntimeFullscreenToAlwaysOnTop
152 #else 153 #else
153 #define MAYBE_RuntimeFullscreenToAlwaysOnTop RuntimeFullscreenToAlwaysOnTop 154 #define MAYBE_RuntimeFullscreenToAlwaysOnTop RuntimeFullscreenToAlwaysOnTop
154 #endif 155 #endif
155 156
156 // Tests a window that enters fullscreen mode at runtime and ensures that the 157 // Tests a window that enters fullscreen mode at runtime and ensures that the
157 // always-on-top property does not get applied until it exits fullscreen. 158 // always-on-top property does not get applied until it exits fullscreen.
158 IN_PROC_BROWSER_TEST_F(ShellWindowTest, MAYBE_RuntimeFullscreenToAlwaysOnTop) { 159 IN_PROC_BROWSER_TEST_F(AppWindowTest, MAYBE_RuntimeFullscreenToAlwaysOnTop) {
159 ShellWindow* window = OpenWindow( 160 AppWindow* window = OpenWindow(kDefaultTestApp, "{}");
160 kDefaultTestApp, "{}");
161 ASSERT_TRUE(window); 161 ASSERT_TRUE(window);
162 162
163 window->Fullscreen(); 163 window->Fullscreen();
164 CheckFullscreenToAlwaysOnTop(window); 164 CheckFullscreenToAlwaysOnTop(window);
165 165
166 CloseShellWindow(window); 166 CloseAppWindow(window);
167 } 167 }
168 168
169 #if defined(OS_MACOSX) 169 #if defined(OS_MACOSX)
170 #define MAYBE_InitFullscreenAndAlwaysOnTop DISABLED_InitFullscreenAndAlwaysOnTop 170 #define MAYBE_InitFullscreenAndAlwaysOnTop DISABLED_InitFullscreenAndAlwaysOnTop
171 #else 171 #else
172 #define MAYBE_InitFullscreenAndAlwaysOnTop InitFullscreenAndAlwaysOnTop 172 #define MAYBE_InitFullscreenAndAlwaysOnTop InitFullscreenAndAlwaysOnTop
173 #endif 173 #endif
174 174
175 // Tests a window created with both fullscreen and always-on-top enabled. Ensure 175 // Tests a window created with both fullscreen and always-on-top enabled. Ensure
176 // that always-on-top is only applied when the window exits fullscreen. 176 // that always-on-top is only applied when the window exits fullscreen.
177 IN_PROC_BROWSER_TEST_F(ShellWindowTest, MAYBE_InitFullscreenAndAlwaysOnTop) { 177 IN_PROC_BROWSER_TEST_F(AppWindowTest, MAYBE_InitFullscreenAndAlwaysOnTop) {
178 ShellWindow* window = OpenWindow( 178 AppWindow* window = OpenWindow(
179 kDefaultTestApp, "{ \"alwaysOnTop\": true, \"state\": \"fullscreen\" }"); 179 kDefaultTestApp, "{ \"alwaysOnTop\": true, \"state\": \"fullscreen\" }");
180 ASSERT_TRUE(window); 180 ASSERT_TRUE(window);
181 181
182 EXPECT_TRUE(window->GetBaseWindow()->IsFullscreenOrPending()); 182 EXPECT_TRUE(window->GetBaseWindow()->IsFullscreenOrPending());
183 EXPECT_FALSE(window->GetBaseWindow()->IsAlwaysOnTop()); 183 EXPECT_FALSE(window->GetBaseWindow()->IsAlwaysOnTop());
184 184
185 // From the API's point of view, the always-on-top property is enabled. 185 // From the API's point of view, the always-on-top property is enabled.
186 EXPECT_TRUE(window->IsAlwaysOnTop()); 186 EXPECT_TRUE(window->IsAlwaysOnTop());
187 187
188 window->Restore(); 188 window->Restore();
189 EXPECT_TRUE(window->GetBaseWindow()->IsAlwaysOnTop()); 189 EXPECT_TRUE(window->GetBaseWindow()->IsAlwaysOnTop());
190 190
191 CloseShellWindow(window); 191 CloseAppWindow(window);
192 } 192 }
193 193
194 #if defined(OS_MACOSX) 194 #if defined(OS_MACOSX)
195 #define MAYBE_DisableAlwaysOnTopInFullscreen DISABLED_DisableAlwaysOnTopInFullsc reen 195 #define MAYBE_DisableAlwaysOnTopInFullscreen \
196 DISABLED_DisableAlwaysOnTopInFullscreen
196 #else 197 #else
197 #define MAYBE_DisableAlwaysOnTopInFullscreen DisableAlwaysOnTopInFullscreen 198 #define MAYBE_DisableAlwaysOnTopInFullscreen DisableAlwaysOnTopInFullscreen
198 #endif 199 #endif
199 200
200 // Tests a window created with always-on-top enabled, but then disabled while 201 // Tests a window created with always-on-top enabled, but then disabled while
201 // in fullscreen mode. After exiting fullscreen, always-on-top should remain 202 // in fullscreen mode. After exiting fullscreen, always-on-top should remain
202 // disabled. 203 // disabled.
203 IN_PROC_BROWSER_TEST_F(ShellWindowTest, MAYBE_DisableAlwaysOnTopInFullscreen) { 204 IN_PROC_BROWSER_TEST_F(AppWindowTest, MAYBE_DisableAlwaysOnTopInFullscreen) {
204 ShellWindow* window = OpenWindow( 205 AppWindow* window = OpenWindow(kDefaultTestApp, "{ \"alwaysOnTop\": true }");
205 kDefaultTestApp, "{ \"alwaysOnTop\": true }");
206 ASSERT_TRUE(window); 206 ASSERT_TRUE(window);
207 207
208 // Disable always-on-top while in fullscreen mode. 208 // Disable always-on-top while in fullscreen mode.
209 window->Fullscreen(); 209 window->Fullscreen();
210 EXPECT_FALSE(window->GetBaseWindow()->IsAlwaysOnTop()); 210 EXPECT_FALSE(window->GetBaseWindow()->IsAlwaysOnTop());
211 window->SetAlwaysOnTop(false); 211 window->SetAlwaysOnTop(false);
212 EXPECT_FALSE(window->GetBaseWindow()->IsAlwaysOnTop()); 212 EXPECT_FALSE(window->GetBaseWindow()->IsAlwaysOnTop());
213 213
214 // Ensure that always-on-top remains disabled. 214 // Ensure that always-on-top remains disabled.
215 window->Restore(); 215 window->Restore();
216 EXPECT_FALSE(window->GetBaseWindow()->IsAlwaysOnTop()); 216 EXPECT_FALSE(window->GetBaseWindow()->IsAlwaysOnTop());
217 217
218 CloseShellWindow(window); 218 CloseAppWindow(window);
219 } 219 }
220 220
221 } // namespace apps 221 } // namespace apps
OLDNEW
« no previous file with comments | « apps/app_window_geometry_cache_unittest.cc ('k') | apps/app_window_registry.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698