OLD | NEW |
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/chromeos/display/display_preferences.h" | 5 #include "chrome/browser/chromeos/display/display_preferences.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "ash/content/display/screen_orientation_controller_chromeos.h" | 10 #include "ash/content/display/screen_orientation_controller_chromeos.h" |
11 #include "ash/display/display_controller.h" | 11 #include "ash/display/display_controller.h" |
12 #include "ash/display/display_layout_store.h" | 12 #include "ash/display/display_layout_store.h" |
13 #include "ash/display/display_manager.h" | 13 #include "ash/display/display_manager.h" |
14 #include "ash/display/resolution_notification_controller.h" | 14 #include "ash/display/resolution_notification_controller.h" |
15 #include "ash/screen_util.h" | 15 #include "ash/screen_util.h" |
16 #include "ash/shell.h" | 16 #include "ash/shell.h" |
17 #include "ash/test/ash_test_base.h" | 17 #include "ash/test/ash_test_base.h" |
18 #include "ash/test/display_manager_test_api.h" | 18 #include "ash/test/display_manager_test_api.h" |
19 #include "ash/wm/maximize_mode/maximize_mode_controller.h" | 19 #include "ash/wm/maximize_mode/maximize_mode_controller.h" |
| 20 #include "base/memory/ref_counted.h" |
20 #include "base/prefs/scoped_user_pref_update.h" | 21 #include "base/prefs/scoped_user_pref_update.h" |
21 #include "base/prefs/testing_pref_service.h" | 22 #include "base/prefs/testing_pref_service.h" |
22 #include "base/strings/string_number_conversions.h" | 23 #include "base/strings/string_number_conversions.h" |
23 #include "base/values.h" | 24 #include "base/values.h" |
24 #include "chrome/browser/chromeos/display/display_configuration_observer.h" | 25 #include "chrome/browser/chromeos/display/display_configuration_observer.h" |
25 #include "chrome/browser/chromeos/login/users/mock_user_manager.h" | 26 #include "chrome/browser/chromeos/login/users/mock_user_manager.h" |
26 #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" | 27 #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" |
27 #include "chrome/common/pref_names.h" | 28 #include "chrome/common/pref_names.h" |
28 #include "chrome/test/base/testing_browser_process.h" | 29 #include "chrome/test/base/testing_browser_process.h" |
29 #include "ui/display/chromeos/display_configurator.h" | 30 #include "ui/display/chromeos/display_configurator.h" |
(...skipping 637 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
667 ash::DisplayManager* display_manager = shell->display_manager(); | 668 ash::DisplayManager* display_manager = shell->display_manager(); |
668 LoggedInAsUser(); | 669 LoggedInAsUser(); |
669 // Populate the properties. | 670 // Populate the properties. |
670 display_manager->SetDisplayRotation(gfx::Display::InternalDisplayId(), | 671 display_manager->SetDisplayRotation(gfx::Display::InternalDisplayId(), |
671 gfx::Display::ROTATE_180); | 672 gfx::Display::ROTATE_180); |
672 // Reset property to avoid rotation lock | 673 // Reset property to avoid rotation lock |
673 display_manager->SetDisplayRotation(gfx::Display::InternalDisplayId(), | 674 display_manager->SetDisplayRotation(gfx::Display::InternalDisplayId(), |
674 gfx::Display::ROTATE_0); | 675 gfx::Display::ROTATE_0); |
675 | 676 |
676 // Open up 270 degrees to trigger maximize mode | 677 // Open up 270 degrees to trigger maximize mode |
677 chromeos::AccelerometerUpdate update; | 678 scoped_refptr<chromeos::AccelerometerUpdate> update( |
678 update.Set(chromeos::ACCELEROMETER_SOURCE_ATTACHED_KEYBOARD, 0.0f, 0.0f, | 679 new chromeos::AccelerometerUpdate()); |
| 680 update->Set(chromeos::ACCELEROMETER_SOURCE_ATTACHED_KEYBOARD, 0.0f, 0.0f, |
679 kMeanGravity); | 681 kMeanGravity); |
680 update.Set(chromeos::ACCELEROMETER_SOURCE_SCREEN, 0.0f, -kMeanGravity, 0.0f); | 682 update->Set(chromeos::ACCELEROMETER_SOURCE_SCREEN, 0.0f, -kMeanGravity, 0.0f); |
681 ash::MaximizeModeController* controller = shell->maximize_mode_controller(); | 683 ash::MaximizeModeController* controller = shell->maximize_mode_controller(); |
682 controller->OnAccelerometerUpdated(update); | 684 controller->OnAccelerometerUpdated(update); |
683 EXPECT_TRUE(controller->IsMaximizeModeWindowManagerEnabled()); | 685 EXPECT_TRUE(controller->IsMaximizeModeWindowManagerEnabled()); |
684 | 686 |
685 // Trigger 90 degree rotation | 687 // Trigger 90 degree rotation |
686 update.Set(chromeos::ACCELEROMETER_SOURCE_ATTACHED_KEYBOARD, -kMeanGravity, | 688 update->Set(chromeos::ACCELEROMETER_SOURCE_ATTACHED_KEYBOARD, -kMeanGravity, |
687 0.0f, 0.0f); | 689 0.0f, 0.0f); |
688 update.Set(chromeos::ACCELEROMETER_SOURCE_SCREEN, -kMeanGravity, 0.0f, 0.0f); | 690 update->Set(chromeos::ACCELEROMETER_SOURCE_SCREEN, -kMeanGravity, 0.0f, 0.0f); |
689 controller->OnAccelerometerUpdated(update); | 691 controller->OnAccelerometerUpdated(update); |
690 shell->screen_orientation_controller()->OnAccelerometerUpdated(update); | 692 shell->screen_orientation_controller()->OnAccelerometerUpdated(update); |
691 EXPECT_EQ(gfx::Display::ROTATE_90, display_manager-> | 693 EXPECT_EQ(gfx::Display::ROTATE_90, display_manager-> |
692 GetDisplayInfo(gfx::Display::InternalDisplayId()).rotation()); | 694 GetDisplayInfo(gfx::Display::InternalDisplayId()).rotation()); |
693 | 695 |
694 const base::DictionaryValue* properties = | 696 const base::DictionaryValue* properties = |
695 local_state()->GetDictionary(prefs::kDisplayProperties); | 697 local_state()->GetDictionary(prefs::kDisplayProperties); |
696 const base::DictionaryValue* property = NULL; | 698 const base::DictionaryValue* property = NULL; |
697 EXPECT_TRUE(properties->GetDictionary( | 699 EXPECT_TRUE(properties->GetDictionary( |
698 base::Int64ToString(gfx::Display::InternalDisplayId()), &property)); | 700 base::Int64ToString(gfx::Display::InternalDisplayId()), &property)); |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
805 | 807 |
806 bool rotation_lock = IsRotationLocked(); | 808 bool rotation_lock = IsRotationLocked(); |
807 gfx::Display::Rotation before_maximize_mode_rotation = display_manager-> | 809 gfx::Display::Rotation before_maximize_mode_rotation = display_manager-> |
808 GetDisplayInfo(gfx::Display::InternalDisplayId()).rotation(); | 810 GetDisplayInfo(gfx::Display::InternalDisplayId()).rotation(); |
809 | 811 |
810 // Settings should not be applied until maximize mode activates | 812 // Settings should not be applied until maximize mode activates |
811 EXPECT_FALSE(rotation_lock); | 813 EXPECT_FALSE(rotation_lock); |
812 EXPECT_EQ(gfx::Display::ROTATE_0, before_maximize_mode_rotation); | 814 EXPECT_EQ(gfx::Display::ROTATE_0, before_maximize_mode_rotation); |
813 | 815 |
814 // Open up 270 degrees to trigger maximize mode | 816 // Open up 270 degrees to trigger maximize mode |
815 chromeos::AccelerometerUpdate update; | 817 scoped_refptr<chromeos::AccelerometerUpdate> update( |
816 update.Set(chromeos::ACCELEROMETER_SOURCE_ATTACHED_KEYBOARD, 0.0f, 0.0f, | 818 new chromeos::AccelerometerUpdate()); |
| 819 update->Set(chromeos::ACCELEROMETER_SOURCE_ATTACHED_KEYBOARD, 0.0f, 0.0f, |
817 kMeanGravity); | 820 kMeanGravity); |
818 update.Set(chromeos::ACCELEROMETER_SOURCE_SCREEN, 0.0f, -kMeanGravity, 0.0f); | 821 update->Set(chromeos::ACCELEROMETER_SOURCE_SCREEN, 0.0f, -kMeanGravity, 0.0f); |
819 ash::MaximizeModeController* maximize_mode_controller = | 822 ash::MaximizeModeController* maximize_mode_controller = |
820 shell->maximize_mode_controller(); | 823 shell->maximize_mode_controller(); |
821 maximize_mode_controller->OnAccelerometerUpdated(update); | 824 maximize_mode_controller->OnAccelerometerUpdated(update); |
822 EXPECT_TRUE(maximize_mode_controller->IsMaximizeModeWindowManagerEnabled()); | 825 EXPECT_TRUE(maximize_mode_controller->IsMaximizeModeWindowManagerEnabled()); |
823 bool screen_orientation_rotation_lock = IsRotationLocked(); | 826 bool screen_orientation_rotation_lock = IsRotationLocked(); |
824 gfx::Display::Rotation maximize_mode_rotation = display_manager-> | 827 gfx::Display::Rotation maximize_mode_rotation = display_manager-> |
825 GetDisplayInfo(gfx::Display::InternalDisplayId()).rotation(); | 828 GetDisplayInfo(gfx::Display::InternalDisplayId()).rotation(); |
826 EXPECT_TRUE(screen_orientation_rotation_lock); | 829 EXPECT_TRUE(screen_orientation_rotation_lock); |
827 EXPECT_EQ(gfx::Display::ROTATE_90, maximize_mode_rotation); | 830 EXPECT_EQ(gfx::Display::ROTATE_90, maximize_mode_rotation); |
828 } | 831 } |
829 | 832 |
830 // Tests that rotation lock being set causes the rotation state to be saved. | 833 // Tests that rotation lock being set causes the rotation state to be saved. |
831 TEST_F(DisplayPreferencesTest, RotationLockTriggersStore) { | 834 TEST_F(DisplayPreferencesTest, RotationLockTriggersStore) { |
832 gfx::Display::SetInternalDisplayId( | 835 gfx::Display::SetInternalDisplayId( |
833 gfx::Screen::GetNativeScreen()->GetPrimaryDisplay().id()); | 836 gfx::Screen::GetNativeScreen()->GetPrimaryDisplay().id()); |
834 ASSERT_FALSE(local_state()->HasPrefPath(prefs::kDisplayRotationLock)); | 837 ASSERT_FALSE(local_state()->HasPrefPath(prefs::kDisplayRotationLock)); |
835 | 838 |
836 ash::Shell::GetInstance()->screen_orientation_controller()->SetRotationLocked( | 839 ash::Shell::GetInstance()->screen_orientation_controller()->SetRotationLocked( |
837 true); | 840 true); |
838 | 841 |
839 EXPECT_TRUE(local_state()->HasPrefPath(prefs::kDisplayRotationLock)); | 842 EXPECT_TRUE(local_state()->HasPrefPath(prefs::kDisplayRotationLock)); |
840 | 843 |
841 const base::DictionaryValue* properties = | 844 const base::DictionaryValue* properties = |
842 local_state()->GetDictionary(prefs::kDisplayRotationLock); | 845 local_state()->GetDictionary(prefs::kDisplayRotationLock); |
843 bool rotation_lock; | 846 bool rotation_lock; |
844 EXPECT_TRUE(properties->GetBoolean("lock", &rotation_lock)); | 847 EXPECT_TRUE(properties->GetBoolean("lock", &rotation_lock)); |
845 } | 848 } |
846 | 849 |
847 } // namespace chromeos | 850 } // namespace chromeos |
OLD | NEW |