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

Side by Side Diff: ash/content/display/screen_orientation_controller_chromeos_unittest.cc

Issue 1867223004: Convert //ash from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address comments Created 4 years, 8 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
« no previous file with comments | « ash/cast_config_delegate.h ('k') | ash/debug.cc » ('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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "ash/display/screen_orientation_controller_chromeos.h"
6
7 #include <memory>
5 #include <vector> 8 #include <vector>
6 9
7 #include "ash/ash_switches.h" 10 #include "ash/ash_switches.h"
8 #include "ash/content/shell_content_state.h" 11 #include "ash/content/shell_content_state.h"
9 #include "ash/display/display_info.h" 12 #include "ash/display/display_info.h"
10 #include "ash/display/display_manager.h" 13 #include "ash/display/display_manager.h"
11 #include "ash/display/screen_orientation_controller_chromeos.h"
12 #include "ash/shell.h" 14 #include "ash/shell.h"
13 #include "ash/test/ash_test_base.h" 15 #include "ash/test/ash_test_base.h"
14 #include "ash/test/ash_test_helper.h" 16 #include "ash/test/ash_test_helper.h"
15 #include "ash/test/content/test_shell_content_state.h" 17 #include "ash/test/content/test_shell_content_state.h"
16 #include "ash/test/display_manager_test_api.h" 18 #include "ash/test/display_manager_test_api.h"
17 #include "ash/test/test_shell_delegate.h" 19 #include "ash/test/test_shell_delegate.h"
18 #include "ash/test/test_system_tray_delegate.h" 20 #include "ash/test/test_system_tray_delegate.h"
19 #include "ash/wm/maximize_mode/maximize_mode_controller.h" 21 #include "ash/wm/maximize_mode/maximize_mode_controller.h"
20 #include "base/command_line.h" 22 #include "base/command_line.h"
21 #include "base/memory/scoped_ptr.h"
22 #include "chromeos/accelerometer/accelerometer_reader.h" 23 #include "chromeos/accelerometer/accelerometer_reader.h"
23 #include "chromeos/accelerometer/accelerometer_types.h" 24 #include "chromeos/accelerometer/accelerometer_types.h"
24 #include "content/public/browser/browser_context.h" 25 #include "content/public/browser/browser_context.h"
25 #include "content/public/browser/web_contents.h" 26 #include "content/public/browser/web_contents.h"
26 #include "content/public/test/test_browser_context.h" 27 #include "content/public/test/test_browser_context.h"
27 #include "third_party/WebKit/public/platform/modules/screen_orientation/WebScree nOrientationLockType.h" 28 #include "third_party/WebKit/public/platform/modules/screen_orientation/WebScree nOrientationLockType.h"
28 #include "ui/aura/window.h" 29 #include "ui/aura/window.h"
29 #include "ui/gfx/display.h" 30 #include "ui/gfx/display.h"
30 #include "ui/message_center/message_center.h" 31 #include "ui/message_center/message_center.h"
31 #include "ui/views/test/webview_test_helper.h" 32 #include "ui/views/test/webview_test_helper.h"
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 118
118 // Creates a secondary content::WebContents, with a separate 119 // Creates a secondary content::WebContents, with a separate
119 // content::BrowserContext. 120 // content::BrowserContext.
120 content::WebContents* CreateSecondaryWebContents(); 121 content::WebContents* CreateSecondaryWebContents();
121 122
122 // test::AshTestBase: 123 // test::AshTestBase:
123 void SetUp() override; 124 void SetUp() override;
124 125
125 private: 126 private:
126 // Optional content::BrowserContext used for two window tests. 127 // Optional content::BrowserContext used for two window tests.
127 scoped_ptr<content::BrowserContext> secondary_browser_context_; 128 std::unique_ptr<content::BrowserContext> secondary_browser_context_;
128 129
129 // Setups underlying content layer so that content::WebContents can be 130 // Setups underlying content layer so that content::WebContents can be
130 // generated. 131 // generated.
131 scoped_ptr<views::WebViewTestHelper> webview_test_helper_; 132 std::unique_ptr<views::WebViewTestHelper> webview_test_helper_;
132 133
133 DISALLOW_COPY_AND_ASSIGN(ScreenOrientationControllerTest); 134 DISALLOW_COPY_AND_ASSIGN(ScreenOrientationControllerTest);
134 }; 135 };
135 136
136 ScreenOrientationControllerTest::ScreenOrientationControllerTest() { 137 ScreenOrientationControllerTest::ScreenOrientationControllerTest() {
137 webview_test_helper_.reset(new views::WebViewTestHelper()); 138 webview_test_helper_.reset(new views::WebViewTestHelper());
138 } 139 }
139 140
140 ScreenOrientationControllerTest::~ScreenOrientationControllerTest() { 141 ScreenOrientationControllerTest::~ScreenOrientationControllerTest() {
141 } 142 }
(...skipping 13 matching lines...) Expand all
155 void ScreenOrientationControllerTest::SetUp() { 156 void ScreenOrientationControllerTest::SetUp() {
156 base::CommandLine::ForCurrentProcess()->AppendSwitch( 157 base::CommandLine::ForCurrentProcess()->AppendSwitch(
157 switches::kAshUseFirstDisplayAsInternal); 158 switches::kAshUseFirstDisplayAsInternal);
158 base::CommandLine::ForCurrentProcess()->AppendSwitch( 159 base::CommandLine::ForCurrentProcess()->AppendSwitch(
159 switches::kAshEnableTouchViewTesting); 160 switches::kAshEnableTouchViewTesting);
160 test::AshTestBase::SetUp(); 161 test::AshTestBase::SetUp();
161 } 162 }
162 163
163 // Tests that a content::WebContents can lock rotation. 164 // Tests that a content::WebContents can lock rotation.
164 TEST_F(ScreenOrientationControllerTest, LockOrientation) { 165 TEST_F(ScreenOrientationControllerTest, LockOrientation) {
165 scoped_ptr<content::WebContents> content(CreateWebContents()); 166 std::unique_ptr<content::WebContents> content(CreateWebContents());
166 scoped_ptr<aura::Window> focus_window(CreateTestWindowInShellWithId(0)); 167 std::unique_ptr<aura::Window> focus_window(CreateTestWindowInShellWithId(0));
167 ASSERT_NE(nullptr, content->GetNativeView()); 168 ASSERT_NE(nullptr, content->GetNativeView());
168 ASSERT_EQ(gfx::Display::ROTATE_0, GetCurrentInternalDisplayRotation()); 169 ASSERT_EQ(gfx::Display::ROTATE_0, GetCurrentInternalDisplayRotation());
169 ASSERT_FALSE(RotationLocked()); 170 ASSERT_FALSE(RotationLocked());
170 171
171 AttachAndActivateWebContents(content.get(), focus_window.get()); 172 AttachAndActivateWebContents(content.get(), focus_window.get());
172 delegate()->Lock(content.get(), blink::WebScreenOrientationLockLandscape); 173 delegate()->Lock(content.get(), blink::WebScreenOrientationLockLandscape);
173 EXPECT_EQ(gfx::Display::ROTATE_0, GetCurrentInternalDisplayRotation()); 174 EXPECT_EQ(gfx::Display::ROTATE_0, GetCurrentInternalDisplayRotation());
174 EXPECT_TRUE(RotationLocked()); 175 EXPECT_TRUE(RotationLocked());
175 } 176 }
176 177
177 // Tests that a content::WebContents can unlock rotation. 178 // Tests that a content::WebContents can unlock rotation.
178 TEST_F(ScreenOrientationControllerTest, Unlock) { 179 TEST_F(ScreenOrientationControllerTest, Unlock) {
179 scoped_ptr<content::WebContents> content(CreateWebContents()); 180 std::unique_ptr<content::WebContents> content(CreateWebContents());
180 scoped_ptr<aura::Window> focus_window(CreateTestWindowInShellWithId(0)); 181 std::unique_ptr<aura::Window> focus_window(CreateTestWindowInShellWithId(0));
181 ASSERT_NE(nullptr, content->GetNativeView()); 182 ASSERT_NE(nullptr, content->GetNativeView());
182 ASSERT_EQ(gfx::Display::ROTATE_0, GetCurrentInternalDisplayRotation()); 183 ASSERT_EQ(gfx::Display::ROTATE_0, GetCurrentInternalDisplayRotation());
183 ASSERT_FALSE(RotationLocked()); 184 ASSERT_FALSE(RotationLocked());
184 185
185 AttachAndActivateWebContents(content.get(), focus_window.get()); 186 AttachAndActivateWebContents(content.get(), focus_window.get());
186 delegate()->Lock(content.get(), blink::WebScreenOrientationLockLandscape); 187 delegate()->Lock(content.get(), blink::WebScreenOrientationLockLandscape);
187 EXPECT_EQ(gfx::Display::ROTATE_0, GetCurrentInternalDisplayRotation()); 188 EXPECT_EQ(gfx::Display::ROTATE_0, GetCurrentInternalDisplayRotation());
188 EXPECT_TRUE(RotationLocked()); 189 EXPECT_TRUE(RotationLocked());
189 190
190 delegate()->Unlock(content.get()); 191 delegate()->Unlock(content.get());
191 EXPECT_FALSE(RotationLocked()); 192 EXPECT_FALSE(RotationLocked());
192 } 193 }
193 194
194 // Tests that a content::WebContents is able to change the orientation of the 195 // Tests that a content::WebContents is able to change the orientation of the
195 // display after having locked rotation. 196 // display after having locked rotation.
196 TEST_F(ScreenOrientationControllerTest, OrientationChanges) { 197 TEST_F(ScreenOrientationControllerTest, OrientationChanges) {
197 scoped_ptr<content::WebContents> content(CreateWebContents()); 198 std::unique_ptr<content::WebContents> content(CreateWebContents());
198 scoped_ptr<aura::Window> focus_window(CreateTestWindowInShellWithId(0)); 199 std::unique_ptr<aura::Window> focus_window(CreateTestWindowInShellWithId(0));
199 ASSERT_NE(nullptr, content->GetNativeView()); 200 ASSERT_NE(nullptr, content->GetNativeView());
200 ASSERT_EQ(gfx::Display::ROTATE_0, GetCurrentInternalDisplayRotation()); 201 ASSERT_EQ(gfx::Display::ROTATE_0, GetCurrentInternalDisplayRotation());
201 ASSERT_FALSE(RotationLocked()); 202 ASSERT_FALSE(RotationLocked());
202 203
203 AttachAndActivateWebContents(content.get(), focus_window.get()); 204 AttachAndActivateWebContents(content.get(), focus_window.get());
204 delegate()->Lock(content.get(), blink::WebScreenOrientationLockPortrait); 205 delegate()->Lock(content.get(), blink::WebScreenOrientationLockPortrait);
205 EXPECT_EQ(gfx::Display::ROTATE_90, GetCurrentInternalDisplayRotation()); 206 EXPECT_EQ(gfx::Display::ROTATE_90, GetCurrentInternalDisplayRotation());
206 EXPECT_TRUE(RotationLocked()); 207 EXPECT_TRUE(RotationLocked());
207 208
208 delegate()->Lock(content.get(), blink::WebScreenOrientationLockLandscape); 209 delegate()->Lock(content.get(), blink::WebScreenOrientationLockLandscape);
209 EXPECT_EQ(gfx::Display::ROTATE_0, GetCurrentInternalDisplayRotation()); 210 EXPECT_EQ(gfx::Display::ROTATE_0, GetCurrentInternalDisplayRotation());
210 } 211 }
211 212
212 // Tests that orientation can only be set by the first content::WebContents that 213 // Tests that orientation can only be set by the first content::WebContents that
213 // has set a rotation lock. 214 // has set a rotation lock.
214 TEST_F(ScreenOrientationControllerTest, SecondContentCannotChangeOrientation) { 215 TEST_F(ScreenOrientationControllerTest, SecondContentCannotChangeOrientation) {
215 scoped_ptr<content::WebContents> content1(CreateWebContents()); 216 std::unique_ptr<content::WebContents> content1(CreateWebContents());
216 scoped_ptr<content::WebContents> content2(CreateSecondaryWebContents()); 217 std::unique_ptr<content::WebContents> content2(CreateSecondaryWebContents());
217 scoped_ptr<aura::Window> focus_window1(CreateTestWindowInShellWithId(0)); 218 std::unique_ptr<aura::Window> focus_window1(CreateTestWindowInShellWithId(0));
218 scoped_ptr<aura::Window> focus_window2(CreateTestWindowInShellWithId(1)); 219 std::unique_ptr<aura::Window> focus_window2(CreateTestWindowInShellWithId(1));
219 ASSERT_NE(content1->GetNativeView(), content2->GetNativeView()); 220 ASSERT_NE(content1->GetNativeView(), content2->GetNativeView());
220 221
221 AttachAndActivateWebContents(content1.get(), focus_window1.get()); 222 AttachAndActivateWebContents(content1.get(), focus_window1.get());
222 AttachWebContents(content2.get(), focus_window2.get()); 223 AttachWebContents(content2.get(), focus_window2.get());
223 delegate()->Lock(content1.get(), blink::WebScreenOrientationLockLandscape); 224 delegate()->Lock(content1.get(), blink::WebScreenOrientationLockLandscape);
224 delegate()->Lock(content2.get(), blink::WebScreenOrientationLockPortrait); 225 delegate()->Lock(content2.get(), blink::WebScreenOrientationLockPortrait);
225 EXPECT_EQ(gfx::Display::ROTATE_0, GetCurrentInternalDisplayRotation()); 226 EXPECT_EQ(gfx::Display::ROTATE_0, GetCurrentInternalDisplayRotation());
226 } 227 }
227 228
228 // Tests that only the content::WebContents that set a rotation lock can perform 229 // Tests that only the content::WebContents that set a rotation lock can perform
229 // an unlock. 230 // an unlock.
230 TEST_F(ScreenOrientationControllerTest, SecondContentCannotUnlock) { 231 TEST_F(ScreenOrientationControllerTest, SecondContentCannotUnlock) {
231 scoped_ptr<content::WebContents> content1(CreateWebContents()); 232 std::unique_ptr<content::WebContents> content1(CreateWebContents());
232 scoped_ptr<content::WebContents> content2(CreateSecondaryWebContents()); 233 std::unique_ptr<content::WebContents> content2(CreateSecondaryWebContents());
233 scoped_ptr<aura::Window> focus_window1(CreateTestWindowInShellWithId(0)); 234 std::unique_ptr<aura::Window> focus_window1(CreateTestWindowInShellWithId(0));
234 scoped_ptr<aura::Window> focus_window2(CreateTestWindowInShellWithId(1)); 235 std::unique_ptr<aura::Window> focus_window2(CreateTestWindowInShellWithId(1));
235 ASSERT_NE(content1->GetNativeView(), content2->GetNativeView()); 236 ASSERT_NE(content1->GetNativeView(), content2->GetNativeView());
236 237
237 AttachAndActivateWebContents(content1.get(), focus_window1.get()); 238 AttachAndActivateWebContents(content1.get(), focus_window1.get());
238 AttachWebContents(content2.get(), focus_window2.get()); 239 AttachWebContents(content2.get(), focus_window2.get());
239 delegate()->Lock(content1.get(), blink::WebScreenOrientationLockLandscape); 240 delegate()->Lock(content1.get(), blink::WebScreenOrientationLockLandscape);
240 delegate()->Unlock(content2.get()); 241 delegate()->Unlock(content2.get());
241 EXPECT_TRUE(RotationLocked()); 242 EXPECT_TRUE(RotationLocked());
242 } 243 }
243 244
244 // Tests that a rotation lock is applied only while the content::WebContents are 245 // Tests that a rotation lock is applied only while the content::WebContents are
245 // a part of the active window. 246 // a part of the active window.
246 TEST_F(ScreenOrientationControllerTest, ActiveWindowChangesUpdateLock) { 247 TEST_F(ScreenOrientationControllerTest, ActiveWindowChangesUpdateLock) {
247 scoped_ptr<content::WebContents> content(CreateWebContents()); 248 std::unique_ptr<content::WebContents> content(CreateWebContents());
248 scoped_ptr<aura::Window> focus_window1(CreateTestWindowInShellWithId(0)); 249 std::unique_ptr<aura::Window> focus_window1(CreateTestWindowInShellWithId(0));
249 scoped_ptr<aura::Window> focus_window2(CreateTestWindowInShellWithId(1)); 250 std::unique_ptr<aura::Window> focus_window2(CreateTestWindowInShellWithId(1));
250 251
251 AttachAndActivateWebContents(content.get(), focus_window1.get()); 252 AttachAndActivateWebContents(content.get(), focus_window1.get());
252 delegate()->Lock(content.get(), blink::WebScreenOrientationLockLandscape); 253 delegate()->Lock(content.get(), blink::WebScreenOrientationLockLandscape);
253 ASSERT_TRUE(RotationLocked()); 254 ASSERT_TRUE(RotationLocked());
254 255
255 aura::client::ActivationClient* activation_client = 256 aura::client::ActivationClient* activation_client =
256 Shell::GetInstance()->activation_client(); 257 Shell::GetInstance()->activation_client();
257 activation_client->ActivateWindow(focus_window2.get()); 258 activation_client->ActivateWindow(focus_window2.get());
258 EXPECT_FALSE(RotationLocked()); 259 EXPECT_FALSE(RotationLocked());
259 260
260 activation_client->ActivateWindow(focus_window1.get()); 261 activation_client->ActivateWindow(focus_window1.get());
261 EXPECT_TRUE(RotationLocked()); 262 EXPECT_TRUE(RotationLocked());
262 } 263 }
263 264
264 // Tests that switching between windows with different orientation locks change 265 // Tests that switching between windows with different orientation locks change
265 // the orientation. 266 // the orientation.
266 TEST_F(ScreenOrientationControllerTest, ActiveWindowChangesUpdateOrientation) { 267 TEST_F(ScreenOrientationControllerTest, ActiveWindowChangesUpdateOrientation) {
267 scoped_ptr<content::WebContents> content1(CreateWebContents()); 268 std::unique_ptr<content::WebContents> content1(CreateWebContents());
268 scoped_ptr<content::WebContents> content2(CreateSecondaryWebContents()); 269 std::unique_ptr<content::WebContents> content2(CreateSecondaryWebContents());
269 scoped_ptr<aura::Window> focus_window1(CreateTestWindowInShellWithId(0)); 270 std::unique_ptr<aura::Window> focus_window1(CreateTestWindowInShellWithId(0));
270 scoped_ptr<aura::Window> focus_window2(CreateTestWindowInShellWithId(1)); 271 std::unique_ptr<aura::Window> focus_window2(CreateTestWindowInShellWithId(1));
271 AttachAndActivateWebContents(content1.get(), focus_window1.get()); 272 AttachAndActivateWebContents(content1.get(), focus_window1.get());
272 AttachWebContents(content2.get(), focus_window2.get()); 273 AttachWebContents(content2.get(), focus_window2.get());
273 274
274 delegate()->Lock(content1.get(), blink::WebScreenOrientationLockLandscape); 275 delegate()->Lock(content1.get(), blink::WebScreenOrientationLockLandscape);
275 delegate()->Lock(content2.get(), blink::WebScreenOrientationLockPortrait); 276 delegate()->Lock(content2.get(), blink::WebScreenOrientationLockPortrait);
276 EXPECT_EQ(gfx::Display::ROTATE_0, GetCurrentInternalDisplayRotation()); 277 EXPECT_EQ(gfx::Display::ROTATE_0, GetCurrentInternalDisplayRotation());
277 278
278 aura::client::ActivationClient* activation_client = 279 aura::client::ActivationClient* activation_client =
279 Shell::GetInstance()->activation_client(); 280 Shell::GetInstance()->activation_client();
280 activation_client->ActivateWindow(focus_window2.get()); 281 activation_client->ActivateWindow(focus_window2.get());
281 EXPECT_TRUE(RotationLocked()); 282 EXPECT_TRUE(RotationLocked());
282 EXPECT_EQ(gfx::Display::ROTATE_90, GetCurrentInternalDisplayRotation()); 283 EXPECT_EQ(gfx::Display::ROTATE_90, GetCurrentInternalDisplayRotation());
283 284
284 activation_client->ActivateWindow(focus_window1.get()); 285 activation_client->ActivateWindow(focus_window1.get());
285 EXPECT_TRUE(RotationLocked()); 286 EXPECT_TRUE(RotationLocked());
286 EXPECT_EQ(gfx::Display::ROTATE_0, GetCurrentInternalDisplayRotation()); 287 EXPECT_EQ(gfx::Display::ROTATE_0, GetCurrentInternalDisplayRotation());
287 } 288 }
288 289
289 // Tests that a rotation lock is removed when the setting window is hidden, and 290 // Tests that a rotation lock is removed when the setting window is hidden, and
290 // that it is reapplied when the window becomes visible. 291 // that it is reapplied when the window becomes visible.
291 TEST_F(ScreenOrientationControllerTest, VisibilityChangesLock) { 292 TEST_F(ScreenOrientationControllerTest, VisibilityChangesLock) {
292 scoped_ptr<content::WebContents> content(CreateWebContents()); 293 std::unique_ptr<content::WebContents> content(CreateWebContents());
293 scoped_ptr<aura::Window> focus_window(CreateTestWindowInShellWithId(0)); 294 std::unique_ptr<aura::Window> focus_window(CreateTestWindowInShellWithId(0));
294 AttachAndActivateWebContents(content.get(), focus_window.get()); 295 AttachAndActivateWebContents(content.get(), focus_window.get());
295 delegate()->Lock(content.get(), blink::WebScreenOrientationLockLandscape); 296 delegate()->Lock(content.get(), blink::WebScreenOrientationLockLandscape);
296 EXPECT_TRUE(RotationLocked()); 297 EXPECT_TRUE(RotationLocked());
297 298
298 aura::Window* window = content->GetNativeView(); 299 aura::Window* window = content->GetNativeView();
299 window->Hide(); 300 window->Hide();
300 EXPECT_FALSE(RotationLocked()); 301 EXPECT_FALSE(RotationLocked());
301 302
302 window->Show(); 303 window->Show();
303 EXPECT_TRUE(RotationLocked()); 304 EXPECT_TRUE(RotationLocked());
304 } 305 }
305 306
306 // Tests that when a window is destroyed that its rotation lock is removed, and 307 // Tests that when a window is destroyed that its rotation lock is removed, and
307 // window activations no longer change the lock 308 // window activations no longer change the lock
308 TEST_F(ScreenOrientationControllerTest, WindowDestructionRemovesLock) { 309 TEST_F(ScreenOrientationControllerTest, WindowDestructionRemovesLock) {
309 scoped_ptr<content::WebContents> content(CreateWebContents()); 310 std::unique_ptr<content::WebContents> content(CreateWebContents());
310 scoped_ptr<aura::Window> focus_window1(CreateTestWindowInShellWithId(0)); 311 std::unique_ptr<aura::Window> focus_window1(CreateTestWindowInShellWithId(0));
311 scoped_ptr<aura::Window> focus_window2(CreateTestWindowInShellWithId(1)); 312 std::unique_ptr<aura::Window> focus_window2(CreateTestWindowInShellWithId(1));
312 313
313 AttachAndActivateWebContents(content.get(), focus_window1.get()); 314 AttachAndActivateWebContents(content.get(), focus_window1.get());
314 delegate()->Lock(content.get(), blink::WebScreenOrientationLockLandscape); 315 delegate()->Lock(content.get(), blink::WebScreenOrientationLockLandscape);
315 ASSERT_TRUE(RotationLocked()); 316 ASSERT_TRUE(RotationLocked());
316 317
317 focus_window1->RemoveChild(content->GetNativeView()); 318 focus_window1->RemoveChild(content->GetNativeView());
318 content.reset(); 319 content.reset();
319 EXPECT_FALSE(RotationLocked()); 320 EXPECT_FALSE(RotationLocked());
320 321
321 aura::client::ActivationClient* activation_client = 322 aura::client::ActivationClient* activation_client =
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
502 // User sets rotation to the same rotation that the display was at when 503 // User sets rotation to the same rotation that the display was at when
503 // maximize mode was activated. 504 // maximize mode was activated.
504 SetInternalDisplayRotation(gfx::Display::ROTATE_0); 505 SetInternalDisplayRotation(gfx::Display::ROTATE_0);
505 EnableMaximizeMode(false); 506 EnableMaximizeMode(false);
506 EXPECT_EQ(gfx::Display::ROTATE_0, GetCurrentInternalDisplayRotation()); 507 EXPECT_EQ(gfx::Display::ROTATE_0, GetCurrentInternalDisplayRotation());
507 } 508 }
508 509
509 // Tests that when the orientation lock is set to Landscape, that rotation can 510 // Tests that when the orientation lock is set to Landscape, that rotation can
510 // be done between the two angles of the orientation. 511 // be done between the two angles of the orientation.
511 TEST_F(ScreenOrientationControllerTest, LandscapeOrientationAllowsRotation) { 512 TEST_F(ScreenOrientationControllerTest, LandscapeOrientationAllowsRotation) {
512 scoped_ptr<content::WebContents> content(CreateWebContents()); 513 std::unique_ptr<content::WebContents> content(CreateWebContents());
513 scoped_ptr<aura::Window> focus_window(CreateTestWindowInShellWithId(0)); 514 std::unique_ptr<aura::Window> focus_window(CreateTestWindowInShellWithId(0));
514 EnableMaximizeMode(true); 515 EnableMaximizeMode(true);
515 516
516 AttachAndActivateWebContents(content.get(), focus_window.get()); 517 AttachAndActivateWebContents(content.get(), focus_window.get());
517 delegate()->Lock(content.get(), blink::WebScreenOrientationLockLandscape); 518 delegate()->Lock(content.get(), blink::WebScreenOrientationLockLandscape);
518 EXPECT_EQ(gfx::Display::ROTATE_0, GetCurrentInternalDisplayRotation()); 519 EXPECT_EQ(gfx::Display::ROTATE_0, GetCurrentInternalDisplayRotation());
519 EXPECT_TRUE(RotationLocked()); 520 EXPECT_TRUE(RotationLocked());
520 521
521 // Inverse of orientation is allowed 522 // Inverse of orientation is allowed
522 TriggerLidUpdate(gfx::Vector3dF(0.0f, kMeanGravity, 0.0f)); 523 TriggerLidUpdate(gfx::Vector3dF(0.0f, kMeanGravity, 0.0f));
523 EXPECT_EQ(gfx::Display::ROTATE_180, GetCurrentInternalDisplayRotation()); 524 EXPECT_EQ(gfx::Display::ROTATE_180, GetCurrentInternalDisplayRotation());
524 525
525 // Display rotations between are not allowed 526 // Display rotations between are not allowed
526 TriggerLidUpdate(gfx::Vector3dF(kMeanGravity, 0.0f, 0.0f)); 527 TriggerLidUpdate(gfx::Vector3dF(kMeanGravity, 0.0f, 0.0f));
527 EXPECT_EQ(gfx::Display::ROTATE_180, GetCurrentInternalDisplayRotation()); 528 EXPECT_EQ(gfx::Display::ROTATE_180, GetCurrentInternalDisplayRotation());
528 TriggerLidUpdate(gfx::Vector3dF(-kMeanGravity, 0.0f, 0.0f)); 529 TriggerLidUpdate(gfx::Vector3dF(-kMeanGravity, 0.0f, 0.0f));
529 EXPECT_EQ(gfx::Display::ROTATE_180, GetCurrentInternalDisplayRotation()); 530 EXPECT_EQ(gfx::Display::ROTATE_180, GetCurrentInternalDisplayRotation());
530 } 531 }
531 532
532 // Tests that when the orientation lock is set to Portrait, that rotaiton can be 533 // Tests that when the orientation lock is set to Portrait, that rotaiton can be
533 // done between the two angles of the orientation. 534 // done between the two angles of the orientation.
534 TEST_F(ScreenOrientationControllerTest, PortraitOrientationAllowsRotation) { 535 TEST_F(ScreenOrientationControllerTest, PortraitOrientationAllowsRotation) {
535 scoped_ptr<content::WebContents> content(CreateWebContents()); 536 std::unique_ptr<content::WebContents> content(CreateWebContents());
536 scoped_ptr<aura::Window> focus_window(CreateTestWindowInShellWithId(0)); 537 std::unique_ptr<aura::Window> focus_window(CreateTestWindowInShellWithId(0));
537 EnableMaximizeMode(true); 538 EnableMaximizeMode(true);
538 539
539 AttachAndActivateWebContents(content.get(), focus_window.get()); 540 AttachAndActivateWebContents(content.get(), focus_window.get());
540 delegate()->Lock(content.get(), blink::WebScreenOrientationLockPortrait); 541 delegate()->Lock(content.get(), blink::WebScreenOrientationLockPortrait);
541 EXPECT_EQ(gfx::Display::ROTATE_90, GetCurrentInternalDisplayRotation()); 542 EXPECT_EQ(gfx::Display::ROTATE_90, GetCurrentInternalDisplayRotation());
542 EXPECT_TRUE(RotationLocked()); 543 EXPECT_TRUE(RotationLocked());
543 544
544 // Inverse of orientation is allowed 545 // Inverse of orientation is allowed
545 TriggerLidUpdate(gfx::Vector3dF(kMeanGravity, 0.0f, 0.0f)); 546 TriggerLidUpdate(gfx::Vector3dF(kMeanGravity, 0.0f, 0.0f));
546 EXPECT_EQ(gfx::Display::ROTATE_270, GetCurrentInternalDisplayRotation()); 547 EXPECT_EQ(gfx::Display::ROTATE_270, GetCurrentInternalDisplayRotation());
547 548
548 // Display rotations between are not allowed 549 // Display rotations between are not allowed
549 TriggerLidUpdate(gfx::Vector3dF(0.0f, kMeanGravity, 0.0f)); 550 TriggerLidUpdate(gfx::Vector3dF(0.0f, kMeanGravity, 0.0f));
550 EXPECT_EQ(gfx::Display::ROTATE_270, GetCurrentInternalDisplayRotation()); 551 EXPECT_EQ(gfx::Display::ROTATE_270, GetCurrentInternalDisplayRotation());
551 TriggerLidUpdate(gfx::Vector3dF(0.0f, -kMeanGravity, 0.0f)); 552 TriggerLidUpdate(gfx::Vector3dF(0.0f, -kMeanGravity, 0.0f));
552 EXPECT_EQ(gfx::Display::ROTATE_270, GetCurrentInternalDisplayRotation()); 553 EXPECT_EQ(gfx::Display::ROTATE_270, GetCurrentInternalDisplayRotation());
553 } 554 }
554 555
555 // Tests that for an orientation lock which does not allow rotation, that the 556 // Tests that for an orientation lock which does not allow rotation, that the
556 // display rotation remains constant. 557 // display rotation remains constant.
557 TEST_F(ScreenOrientationControllerTest, OrientationLockDisallowsRotation) { 558 TEST_F(ScreenOrientationControllerTest, OrientationLockDisallowsRotation) {
558 scoped_ptr<content::WebContents> content(CreateWebContents()); 559 std::unique_ptr<content::WebContents> content(CreateWebContents());
559 scoped_ptr<aura::Window> focus_window(CreateTestWindowInShellWithId(0)); 560 std::unique_ptr<aura::Window> focus_window(CreateTestWindowInShellWithId(0));
560 EnableMaximizeMode(true); 561 EnableMaximizeMode(true);
561 562
562 AttachAndActivateWebContents(content.get(), focus_window.get()); 563 AttachAndActivateWebContents(content.get(), focus_window.get());
563 delegate()->Lock(content.get(), 564 delegate()->Lock(content.get(),
564 blink::WebScreenOrientationLockPortraitPrimary); 565 blink::WebScreenOrientationLockPortraitPrimary);
565 EXPECT_EQ(gfx::Display::ROTATE_90, GetCurrentInternalDisplayRotation()); 566 EXPECT_EQ(gfx::Display::ROTATE_90, GetCurrentInternalDisplayRotation());
566 EXPECT_TRUE(RotationLocked()); 567 EXPECT_TRUE(RotationLocked());
567 568
568 // Rotation does not change. 569 // Rotation does not change.
569 TriggerLidUpdate(gfx::Vector3dF(kMeanGravity, 0.0f, 0.0f)); 570 TriggerLidUpdate(gfx::Vector3dF(kMeanGravity, 0.0f, 0.0f));
570 EXPECT_EQ(gfx::Display::ROTATE_90, GetCurrentInternalDisplayRotation()); 571 EXPECT_EQ(gfx::Display::ROTATE_90, GetCurrentInternalDisplayRotation());
571 TriggerLidUpdate(gfx::Vector3dF(0.0f, kMeanGravity, 0.0f)); 572 TriggerLidUpdate(gfx::Vector3dF(0.0f, kMeanGravity, 0.0f));
572 EXPECT_EQ(gfx::Display::ROTATE_90, GetCurrentInternalDisplayRotation()); 573 EXPECT_EQ(gfx::Display::ROTATE_90, GetCurrentInternalDisplayRotation());
573 TriggerLidUpdate(gfx::Vector3dF(0.0f, -kMeanGravity, 0.0f)); 574 TriggerLidUpdate(gfx::Vector3dF(0.0f, -kMeanGravity, 0.0f));
574 EXPECT_EQ(gfx::Display::ROTATE_90, GetCurrentInternalDisplayRotation()); 575 EXPECT_EQ(gfx::Display::ROTATE_90, GetCurrentInternalDisplayRotation());
575 } 576 }
576 577
577 // Tests that after a content::WebContents has applied an orientation lock which 578 // Tests that after a content::WebContents has applied an orientation lock which
578 // supports rotation, that a user rotation lock does not allow rotation. 579 // supports rotation, that a user rotation lock does not allow rotation.
579 TEST_F(ScreenOrientationControllerTest, UserRotationLockDisallowsRotation) { 580 TEST_F(ScreenOrientationControllerTest, UserRotationLockDisallowsRotation) {
580 scoped_ptr<content::WebContents> content(CreateWebContents()); 581 std::unique_ptr<content::WebContents> content(CreateWebContents());
581 scoped_ptr<aura::Window> focus_window(CreateTestWindowInShellWithId(0)); 582 std::unique_ptr<aura::Window> focus_window(CreateTestWindowInShellWithId(0));
582 EnableMaximizeMode(true); 583 EnableMaximizeMode(true);
583 584
584 AttachAndActivateWebContents(content.get(), focus_window.get()); 585 AttachAndActivateWebContents(content.get(), focus_window.get());
585 delegate()->Lock(content.get(), blink::WebScreenOrientationLockLandscape); 586 delegate()->Lock(content.get(), blink::WebScreenOrientationLockLandscape);
586 delegate()->Unlock(content.get()); 587 delegate()->Unlock(content.get());
587 588
588 SetRotationLocked(true); 589 SetRotationLocked(true);
589 EXPECT_TRUE(RotationLocked()); 590 EXPECT_TRUE(RotationLocked());
590 EXPECT_EQ(gfx::Display::ROTATE_0, GetCurrentInternalDisplayRotation()); 591 EXPECT_EQ(gfx::Display::ROTATE_0, GetCurrentInternalDisplayRotation());
591 592
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
650 .GetActiveRotation()); 651 .GetActiveRotation());
651 652
652 Shell::GetInstance()->screen_orientation_controller()->SetDisplayRotation( 653 Shell::GetInstance()->screen_orientation_controller()->SetDisplayRotation(
653 kNewRotation, gfx::Display::ROTATION_SOURCE_ACTIVE); 654 kNewRotation, gfx::Display::ROTATION_SOURCE_ACTIVE);
654 655
655 EXPECT_EQ(kNewRotation, display_manager->GetDisplayInfo(kInternalDisplayId) 656 EXPECT_EQ(kNewRotation, display_manager->GetDisplayInfo(kInternalDisplayId)
656 .GetActiveRotation()); 657 .GetActiveRotation());
657 } 658 }
658 659
659 } // namespace ash 660 } // namespace ash
OLDNEW
« no previous file with comments | « ash/cast_config_delegate.h ('k') | ash/debug.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698