OLD | NEW |
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 <math.h> |
| 6 |
5 #include "ash/wm/maximize_mode/maximize_mode_controller.h" | 7 #include "ash/wm/maximize_mode/maximize_mode_controller.h" |
6 | 8 |
7 #include "ash/accelerometer/accelerometer_controller.h" | 9 #include "ash/accelerometer/accelerometer_controller.h" |
8 #include "ash/display/display_manager.h" | 10 #include "ash/display/display_manager.h" |
9 #include "ash/shell.h" | 11 #include "ash/shell.h" |
10 #include "ash/system/tray/system_tray_delegate.h" | 12 #include "ash/system/tray/system_tray_delegate.h" |
11 #include "ash/test/ash_test_base.h" | 13 #include "ash/test/ash_test_base.h" |
12 #include "ash/test/display_manager_test_api.h" | 14 #include "ash/test/display_manager_test_api.h" |
13 #include "ash/test/test_lock_state_controller_delegate.h" | 15 #include "ash/test/test_lock_state_controller_delegate.h" |
14 #include "ash/test/test_screenshot_delegate.h" | 16 #include "ash/test/test_screenshot_delegate.h" |
15 #include "ash/test/test_system_tray_delegate.h" | 17 #include "ash/test/test_system_tray_delegate.h" |
16 #include "ash/test/test_volume_control_delegate.h" | 18 #include "ash/test/test_volume_control_delegate.h" |
| 19 #include "base/test/simple_test_tick_clock.h" |
17 #include "ui/events/event_handler.h" | 20 #include "ui/events/event_handler.h" |
18 #include "ui/events/test/event_generator.h" | 21 #include "ui/events/test/event_generator.h" |
19 #include "ui/gfx/vector3d_f.h" | 22 #include "ui/gfx/vector3d_f.h" |
20 #include "ui/message_center/message_center.h" | 23 #include "ui/message_center/message_center.h" |
21 | 24 |
22 #if defined(USE_X11) | 25 #if defined(USE_X11) |
23 #include "ui/events/test/events_test_utils_x11.h" | 26 #include "ui/events/test/events_test_utils_x11.h" |
24 #endif | 27 #endif |
25 | 28 |
26 namespace ash { | 29 namespace ash { |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
83 gfx::Display::Rotation GetInternalDisplayRotation() const { | 86 gfx::Display::Rotation GetInternalDisplayRotation() const { |
84 return Shell::GetInstance()->display_manager()->GetDisplayInfo( | 87 return Shell::GetInstance()->display_manager()->GetDisplayInfo( |
85 gfx::Display::InternalDisplayId()).rotation(); | 88 gfx::Display::InternalDisplayId()).rotation(); |
86 } | 89 } |
87 | 90 |
88 void SetInternalDisplayRotation(gfx::Display::Rotation rotation) const { | 91 void SetInternalDisplayRotation(gfx::Display::Rotation rotation) const { |
89 Shell::GetInstance()->display_manager()-> | 92 Shell::GetInstance()->display_manager()-> |
90 SetDisplayRotation(gfx::Display::InternalDisplayId(), rotation); | 93 SetDisplayRotation(gfx::Display::InternalDisplayId(), rotation); |
91 } | 94 } |
92 | 95 |
| 96 // Attaches a SimpleTestTickClock to the MaximizeModeController with a non |
| 97 // null value initial value. |
| 98 void AttachTickClockForTest() { |
| 99 scoped_ptr<base::TickClock> tick_clock( |
| 100 test_tick_clock_ = new base::SimpleTestTickClock()); |
| 101 test_tick_clock_->Advance(base::TimeDelta::FromSeconds(1)); |
| 102 maximize_mode_controller()->SetTickClockForTest(tick_clock.Pass()); |
| 103 } |
| 104 |
| 105 void AdvanceTickClock(const base::TimeDelta& delta) { |
| 106 DCHECK(test_tick_clock_); |
| 107 test_tick_clock_->Advance(delta); |
| 108 } |
| 109 |
| 110 void OpenLidToAngle(float degrees) { |
| 111 DCHECK(degrees >= 0.0f); |
| 112 DCHECK(degrees <= 360.0f); |
| 113 |
| 114 float radians = degrees * kDegreesToRadians; |
| 115 gfx::Vector3dF base_vector(1.0f, 0.0f, 0.0f); |
| 116 gfx::Vector3dF lid_vector(cos(radians), 0.0f, sin(radians)); |
| 117 TriggerAccelerometerUpdate(base_vector, lid_vector); |
| 118 } |
| 119 |
| 120 #if defined(OS_CHROMEOS) |
| 121 void OpenLid() { |
| 122 maximize_mode_controller()->LidEventReceived(true /* open */, |
| 123 maximize_mode_controller()->tick_clock_->NowTicks()); |
| 124 } |
| 125 |
| 126 void CloseLid() { |
| 127 maximize_mode_controller()->LidEventReceived(false /* open */, |
| 128 maximize_mode_controller()->tick_clock_->NowTicks()); |
| 129 } |
| 130 #endif // OS_CHROMEOS |
| 131 |
| 132 bool WasLidOpenedRecently() { |
| 133 return maximize_mode_controller()->WasLidOpenedRecently(); |
| 134 } |
| 135 |
93 private: | 136 private: |
| 137 base::SimpleTestTickClock* test_tick_clock_; |
| 138 |
94 DISALLOW_COPY_AND_ASSIGN(MaximizeModeControllerTest); | 139 DISALLOW_COPY_AND_ASSIGN(MaximizeModeControllerTest); |
95 }; | 140 }; |
96 | 141 |
97 // Tests that opening the lid beyond 180 will enter touchview, and that it will | 142 #if defined(OS_CHROMEOS) |
98 // exit when the lid comes back from 180. Also tests the thresholds, i.e. it | |
99 // will stick to the current mode. | |
100 TEST_F(MaximizeModeControllerTest, EnterExitThresholds) { | |
101 // For the simple test the base remains steady. | |
102 gfx::Vector3dF base(0.0f, 0.0f, 1.0f); | |
103 | 143 |
104 // Lid open 90 degrees. | 144 // Verify that closing the lid will exit maximize mode. |
105 TriggerAccelerometerUpdate(base, gfx::Vector3dF(-1.0f, 0.0f, 0.0f)); | 145 TEST_F(MaximizeModeControllerTest, CloseLidWhileInMaximizeMode) { |
| 146 OpenLidToAngle(315.0f); |
| 147 ASSERT_TRUE(IsMaximizeModeStarted()); |
| 148 |
| 149 CloseLid(); |
| 150 EXPECT_FALSE(IsMaximizeModeStarted()); |
| 151 } |
| 152 |
| 153 // Verify that maximize mode will not be entered when the lid is closed. |
| 154 TEST_F(MaximizeModeControllerTest, |
| 155 HingeAnglesWithLidClosed) { |
| 156 AttachTickClockForTest(); |
| 157 |
| 158 CloseLid(); |
| 159 |
| 160 OpenLidToAngle(270.0f); |
106 EXPECT_FALSE(IsMaximizeModeStarted()); | 161 EXPECT_FALSE(IsMaximizeModeStarted()); |
107 | 162 |
108 // Open just past 180. | 163 OpenLidToAngle(315.0f); |
109 TriggerAccelerometerUpdate(base, gfx::Vector3dF(0.05f, 0.0f, -1.0f)); | |
110 EXPECT_FALSE(IsMaximizeModeStarted()); | 164 EXPECT_FALSE(IsMaximizeModeStarted()); |
111 | 165 |
112 // Open up 270 degrees. | 166 OpenLidToAngle(355.0f); |
113 TriggerAccelerometerUpdate(base, gfx::Vector3dF(1.0f, 0.0f, 0.0f)); | 167 EXPECT_FALSE(IsMaximizeModeStarted()); |
| 168 } |
| 169 |
| 170 // Verify the maximize mode state for unstable hinge angles when the lid was |
| 171 // recently open. |
| 172 TEST_F(MaximizeModeControllerTest, |
| 173 UnstableHingeAnglesWhenLidRecentlyOpened) { |
| 174 AttachTickClockForTest(); |
| 175 |
| 176 OpenLid(); |
| 177 ASSERT_TRUE(WasLidOpenedRecently()); |
| 178 |
| 179 OpenLidToAngle(5.0f); |
| 180 EXPECT_FALSE(IsMaximizeModeStarted()); |
| 181 |
| 182 OpenLidToAngle(355.0f); |
| 183 EXPECT_FALSE(IsMaximizeModeStarted()); |
| 184 |
| 185 // This is a stable reading and should clear the last lid opened time. |
| 186 OpenLidToAngle(45.0f); |
| 187 EXPECT_FALSE(IsMaximizeModeStarted()); |
| 188 EXPECT_FALSE(WasLidOpenedRecently()); |
| 189 |
| 190 OpenLidToAngle(355.0f); |
| 191 EXPECT_TRUE(IsMaximizeModeStarted()); |
| 192 } |
| 193 |
| 194 #endif // OS_CHROMEOS |
| 195 |
| 196 // Verify the WasLidOpenedRecently signal with respect to time. |
| 197 TEST_F(MaximizeModeControllerTest, WasLidOpenedRecentlyOverTime) { |
| 198 #if defined(OS_CHROMEOS) |
| 199 |
| 200 AttachTickClockForTest(); |
| 201 |
| 202 // No lid open time initially. |
| 203 ASSERT_FALSE(WasLidOpenedRecently()); |
| 204 |
| 205 CloseLid(); |
| 206 EXPECT_FALSE(WasLidOpenedRecently()); |
| 207 |
| 208 OpenLid(); |
| 209 EXPECT_TRUE(WasLidOpenedRecently()); |
| 210 |
| 211 // 1 second after lid open. |
| 212 AdvanceTickClock(base::TimeDelta::FromSeconds(1)); |
| 213 EXPECT_TRUE(WasLidOpenedRecently()); |
| 214 |
| 215 // 3 seconds after lid open. |
| 216 AdvanceTickClock(base::TimeDelta::FromSeconds(2)); |
| 217 EXPECT_FALSE(WasLidOpenedRecently()); |
| 218 |
| 219 #else |
| 220 |
| 221 EXPECT_FALSE(WasLidOpenedRecently()); |
| 222 |
| 223 #endif // OS_CHROMEOS |
| 224 } |
| 225 |
| 226 // Verify the maximize mode enter/exit thresholds for stable angles. |
| 227 TEST_F(MaximizeModeControllerTest, StableHingeAnglesWithLidOpened) { |
| 228 ASSERT_FALSE(IsMaximizeModeStarted()); |
| 229 ASSERT_FALSE(WasLidOpenedRecently()); |
| 230 |
| 231 OpenLidToAngle(180.0f); |
| 232 EXPECT_FALSE(IsMaximizeModeStarted()); |
| 233 |
| 234 OpenLidToAngle(315.0f); |
114 EXPECT_TRUE(IsMaximizeModeStarted()); | 235 EXPECT_TRUE(IsMaximizeModeStarted()); |
115 | 236 |
116 // Open up 360 degrees and appearing to be slightly past it (i.e. as if almost | 237 OpenLidToAngle(180.0f); |
117 // closed). | |
118 TriggerAccelerometerUpdate(base, gfx::Vector3dF(-0.05f, 0.0f, 1.0f)); | |
119 EXPECT_TRUE(IsMaximizeModeStarted()); | 238 EXPECT_TRUE(IsMaximizeModeStarted()); |
120 | 239 |
121 // Open just before 180. | 240 OpenLidToAngle(45.0f); |
122 TriggerAccelerometerUpdate(base, gfx::Vector3dF(-0.05f, 0.0f, -1.0f)); | 241 EXPECT_FALSE(IsMaximizeModeStarted()); |
| 242 |
| 243 OpenLidToAngle(270.0f); |
123 EXPECT_TRUE(IsMaximizeModeStarted()); | 244 EXPECT_TRUE(IsMaximizeModeStarted()); |
124 | 245 |
125 // Open 90 degrees. | 246 OpenLidToAngle(90.0f); |
126 TriggerAccelerometerUpdate(base, gfx::Vector3dF(-1.0f, 0.0f, 0.0f)); | |
127 EXPECT_FALSE(IsMaximizeModeStarted()); | 247 EXPECT_FALSE(IsMaximizeModeStarted()); |
128 } | 248 } |
129 | 249 |
| 250 // Verify the maximize mode state for unstable hinge angles when the lid is open |
| 251 // but not recently. |
| 252 TEST_F(MaximizeModeControllerTest, UnstableHingeAnglesWithLidOpened) { |
| 253 AttachTickClockForTest(); |
| 254 |
| 255 ASSERT_FALSE(WasLidOpenedRecently()); |
| 256 ASSERT_FALSE(IsMaximizeModeStarted()); |
| 257 |
| 258 OpenLidToAngle(5.0f); |
| 259 EXPECT_FALSE(IsMaximizeModeStarted()); |
| 260 |
| 261 OpenLidToAngle(355.0f); |
| 262 EXPECT_TRUE(IsMaximizeModeStarted()); |
| 263 |
| 264 OpenLidToAngle(5.0f); |
| 265 EXPECT_TRUE(IsMaximizeModeStarted()); |
| 266 } |
| 267 |
130 // Tests that when the hinge is nearly vertically aligned, the current state | 268 // Tests that when the hinge is nearly vertically aligned, the current state |
131 // persists as the computed angle is highly inaccurate in this orientation. | 269 // persists as the computed angle is highly inaccurate in this orientation. |
132 TEST_F(MaximizeModeControllerTest, HingeAligned) { | 270 TEST_F(MaximizeModeControllerTest, HingeAligned) { |
133 // Laptop in normal orientation lid open 90 degrees. | 271 // Laptop in normal orientation lid open 90 degrees. |
134 TriggerAccelerometerUpdate(gfx::Vector3dF(0.0f, 0.0f, 1.0f), | 272 TriggerAccelerometerUpdate(gfx::Vector3dF(0.0f, 0.0f, 1.0f), |
135 gfx::Vector3dF(-1.0f, 0.0f, 0.0f)); | 273 gfx::Vector3dF(-1.0f, 0.0f, 0.0f)); |
136 EXPECT_FALSE(IsMaximizeModeStarted()); | 274 EXPECT_FALSE(IsMaximizeModeStarted()); |
137 | 275 |
138 // Completely vertical. | 276 // Completely vertical. |
139 TriggerAccelerometerUpdate(gfx::Vector3dF(0.0f, -1.0f, 0.0f), | 277 TriggerAccelerometerUpdate(gfx::Vector3dF(0.0f, -1.0f, 0.0f), |
(...skipping 10 matching lines...) Expand all Loading... |
150 gfx::Vector3dF(1.0f, 0.0f, 0.0f)); | 288 gfx::Vector3dF(1.0f, 0.0f, 0.0f)); |
151 EXPECT_TRUE(IsMaximizeModeStarted()); | 289 EXPECT_TRUE(IsMaximizeModeStarted()); |
152 | 290 |
153 // Normal 90 degree orientation but near vertical should stay in maximize | 291 // Normal 90 degree orientation but near vertical should stay in maximize |
154 // mode. | 292 // mode. |
155 TriggerAccelerometerUpdate(gfx::Vector3dF(0.0f, -1.0f, 0.01f), | 293 TriggerAccelerometerUpdate(gfx::Vector3dF(0.0f, -1.0f, 0.01f), |
156 gfx::Vector3dF(-0.01f, -1.0f, 0.0f)); | 294 gfx::Vector3dF(-0.01f, -1.0f, 0.0f)); |
157 EXPECT_TRUE(IsMaximizeModeStarted()); | 295 EXPECT_TRUE(IsMaximizeModeStarted()); |
158 } | 296 } |
159 | 297 |
160 // Tests that accelerometer readings in each of the screen angles will trigger | 298 // Tests that accelerometer readings in each of the screen angles will trigger a |
161 // a rotation of the internal display. | 299 // rotation of the internal display. |
162 TEST_F(MaximizeModeControllerTest, DisplayRotation) { | 300 TEST_F(MaximizeModeControllerTest, DisplayRotation) { |
163 // Trigger maximize mode by opening to 270. | 301 // Trigger maximize mode by opening to 270. |
164 TriggerAccelerometerUpdate(gfx::Vector3dF(0.0f, 0.0f, -1.0f), | 302 TriggerAccelerometerUpdate(gfx::Vector3dF(0.0f, 0.0f, -1.0f), |
165 gfx::Vector3dF(-1.0f, 0.0f, 0.0f)); | 303 gfx::Vector3dF(-1.0f, 0.0f, 0.0f)); |
166 ASSERT_TRUE(IsMaximizeModeStarted()); | 304 ASSERT_TRUE(IsMaximizeModeStarted()); |
167 | 305 |
168 // Now test rotating in all directions. | 306 // Now test rotating in all directions. |
169 TriggerAccelerometerUpdate(gfx::Vector3dF(0.0f, 1.0f, 0.0f), | 307 TriggerAccelerometerUpdate(gfx::Vector3dF(0.0f, 1.0f, 0.0f), |
170 gfx::Vector3dF(0.0f, 1.0f, 0.0f)); | 308 gfx::Vector3dF(0.0f, 1.0f, 0.0f)); |
171 EXPECT_EQ(gfx::Display::ROTATE_90, GetInternalDisplayRotation()); | 309 EXPECT_EQ(gfx::Display::ROTATE_90, GetInternalDisplayRotation()); |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
268 // and pressing power. | 406 // and pressing power. |
269 TEST_F(MaximizeModeControllerTest, Screenshot) { | 407 TEST_F(MaximizeModeControllerTest, Screenshot) { |
270 Shell::GetInstance()->lock_state_controller()->SetDelegate( | 408 Shell::GetInstance()->lock_state_controller()->SetDelegate( |
271 new test::TestLockStateControllerDelegate); | 409 new test::TestLockStateControllerDelegate); |
272 aura::Window* root = Shell::GetPrimaryRootWindow(); | 410 aura::Window* root = Shell::GetPrimaryRootWindow(); |
273 ui::test::EventGenerator event_generator(root, root); | 411 ui::test::EventGenerator event_generator(root, root); |
274 test::TestScreenshotDelegate* delegate = GetScreenshotDelegate(); | 412 test::TestScreenshotDelegate* delegate = GetScreenshotDelegate(); |
275 delegate->set_can_take_screenshot(true); | 413 delegate->set_can_take_screenshot(true); |
276 | 414 |
277 // Open up 270 degrees. | 415 // Open up 270 degrees. |
278 TriggerAccelerometerUpdate(gfx::Vector3dF(0.0f, 0.0f, 1.0f), | 416 OpenLidToAngle(270.0f); |
279 gfx::Vector3dF(1.0f, 0.0f, 0.0f)); | |
280 ASSERT_TRUE(IsMaximizeModeStarted()); | 417 ASSERT_TRUE(IsMaximizeModeStarted()); |
281 | 418 |
282 // Pressing power alone does not take a screenshot. | 419 // Pressing power alone does not take a screenshot. |
283 event_generator.PressKey(ui::VKEY_POWER, 0); | 420 event_generator.PressKey(ui::VKEY_POWER, 0); |
284 event_generator.ReleaseKey(ui::VKEY_POWER, 0); | 421 event_generator.ReleaseKey(ui::VKEY_POWER, 0); |
285 EXPECT_EQ(0, delegate->handle_take_screenshot_count()); | 422 EXPECT_EQ(0, delegate->handle_take_screenshot_count()); |
286 | 423 |
287 // Holding volume down and pressing power takes a screenshot. | 424 // Holding volume down and pressing power takes a screenshot. |
288 event_generator.PressKey(ui::VKEY_VOLUME_DOWN, 0); | 425 event_generator.PressKey(ui::VKEY_VOLUME_DOWN, 0); |
289 event_generator.PressKey(ui::VKEY_POWER, 0); | 426 event_generator.PressKey(ui::VKEY_POWER, 0); |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
356 EXPECT_EQ(gfx::Display::ROTATE_0, GetInternalDisplayRotation()); | 493 EXPECT_EQ(gfx::Display::ROTATE_0, GetInternalDisplayRotation()); |
357 | 494 |
358 maximize_mode_controller()->SetRotationLocked(false); | 495 maximize_mode_controller()->SetRotationLocked(false); |
359 TriggerAccelerometerUpdate(gravity, gravity); | 496 TriggerAccelerometerUpdate(gravity, gravity); |
360 EXPECT_EQ(gfx::Display::ROTATE_90, GetInternalDisplayRotation()); | 497 EXPECT_EQ(gfx::Display::ROTATE_90, GetInternalDisplayRotation()); |
361 } | 498 } |
362 | 499 |
363 // Tests that when MaximizeModeController turns off MaximizeMode that on the | 500 // Tests that when MaximizeModeController turns off MaximizeMode that on the |
364 // next accelerometer update the rotation lock is cleared. | 501 // next accelerometer update the rotation lock is cleared. |
365 TEST_F(MaximizeModeControllerTest, ExitingMaximizeModeClearRotationLock) { | 502 TEST_F(MaximizeModeControllerTest, ExitingMaximizeModeClearRotationLock) { |
366 // The base remains steady. | |
367 gfx::Vector3dF base(0.0f, 0.0f, 1.0f); | |
368 | |
369 // Trigger maximize mode by opening to 270. | 503 // Trigger maximize mode by opening to 270. |
370 TriggerAccelerometerUpdate(gfx::Vector3dF(0.0f, 0.0f, -1.0f), | 504 OpenLidToAngle(270.0f); |
371 gfx::Vector3dF(-1.0f, 0.0f, 0.0f)); | |
372 ASSERT_TRUE(IsMaximizeModeStarted()); | 505 ASSERT_TRUE(IsMaximizeModeStarted()); |
373 | 506 |
374 maximize_mode_controller()->SetRotationLocked(true); | 507 maximize_mode_controller()->SetRotationLocked(true); |
375 | 508 |
376 // Open 90 degrees. | 509 OpenLidToAngle(90.0f); |
377 TriggerAccelerometerUpdate(base, gfx::Vector3dF(-1.0f, 0.0f, 0.0f)); | |
378 EXPECT_FALSE(IsMaximizeModeStarted()); | 510 EXPECT_FALSE(IsMaximizeModeStarted()); |
379 | 511 |
380 // Send an update that would not relaunch MaximizeMode. 90 degrees. | 512 // Send an update that would not relaunch MaximizeMode. |
381 TriggerAccelerometerUpdate(base, gfx::Vector3dF(-1.0f, 0.0f, 0.0f)); | 513 OpenLidToAngle(90.0f); |
382 EXPECT_FALSE(maximize_mode_controller()->rotation_locked()); | 514 EXPECT_FALSE(maximize_mode_controller()->rotation_locked()); |
383 } | 515 } |
384 | 516 |
385 // The TrayDisplay class that is responsible for adding/updating MessageCenter | 517 // The TrayDisplay class that is responsible for adding/updating MessageCenter |
386 // notifications is only added to the SystemTray on ChromeOS. | 518 // notifications is only added to the SystemTray on ChromeOS. |
387 #if defined(OS_CHROMEOS) | 519 #if defined(OS_CHROMEOS) |
388 // Tests that the screen rotation notifications are suppressed when | 520 // Tests that the screen rotation notifications are suppressed when |
389 // triggered by the accelerometer. | 521 // triggered by the accelerometer. |
390 TEST_F(MaximizeModeControllerTest, BlockRotationNotifications) { | 522 TEST_F(MaximizeModeControllerTest, BlockRotationNotifications) { |
391 test::TestSystemTrayDelegate* tray_delegate = | 523 test::TestSystemTrayDelegate* tray_delegate = |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
490 // User sets rotation to the same rotation that the display was at when | 622 // User sets rotation to the same rotation that the display was at when |
491 // maximize mode was activated. | 623 // maximize mode was activated. |
492 SetInternalDisplayRotation(gfx::Display::ROTATE_0); | 624 SetInternalDisplayRotation(gfx::Display::ROTATE_0); |
493 // Exit maximize mode | 625 // Exit maximize mode |
494 TriggerAccelerometerUpdate(gfx::Vector3dF(0.0f, 0.0f, 1.0f), | 626 TriggerAccelerometerUpdate(gfx::Vector3dF(0.0f, 0.0f, 1.0f), |
495 gfx::Vector3dF(-1.0f, 0.0f, 0.0f)); | 627 gfx::Vector3dF(-1.0f, 0.0f, 0.0f)); |
496 EXPECT_EQ(gfx::Display::ROTATE_0, GetInternalDisplayRotation()); | 628 EXPECT_EQ(gfx::Display::ROTATE_0, GetInternalDisplayRotation()); |
497 } | 629 } |
498 | 630 |
499 } // namespace ash | 631 } // namespace ash |
OLD | NEW |