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

Unified Diff: ash/display/display_controller_unittest.cc

Issue 12505005: Store rotation/ui scale to local state. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: ash/display/display_controller_unittest.cc
diff --git a/ash/display/display_controller_unittest.cc b/ash/display/display_controller_unittest.cc
index d1713f0aec287fc3132956f0ce51ab63f0bcf8e9..1f221c511aa040122a33464808a7d70f8360ceae 100644
--- a/ash/display/display_controller_unittest.cc
+++ b/ash/display/display_controller_unittest.cc
@@ -122,6 +122,14 @@ class TestEventHandler : public ui::EventHandler {
DISALLOW_COPY_AND_ASSIGN(TestEventHandler);
};
+gfx::Display::Rotation GetStoredRotation(int64 id) {
+ return Shell::GetInstance()->display_manager()->GetDisplayInfo(id).rotation();
+}
+
+float GetStoredUIScale(int64 id) {
+ return Shell::GetInstance()->display_manager()->GetDisplayInfo(id).ui_scale();
+}
+
} // namespace
typedef test::AshTestBase DisplayControllerTest;
@@ -459,9 +467,10 @@ TEST_F(DisplayControllerTest, SwapPrimaryById) {
// Adding 2nd display with the same ID. The 2nd display should become primary
// since secondary id is still stored as desirable_primary_id.
std::vector<internal::DisplayInfo> display_info_list;
- display_info_list.push_back(display_manager->GetDisplayInfo(primary_display));
display_info_list.push_back(
- display_manager->GetDisplayInfo(secondary_display));
+ display_manager->GetDisplayInfo(primary_display.id()));
+ display_info_list.push_back(
+ display_manager->GetDisplayInfo(secondary_display.id()));
display_manager->OnNativeDisplaysChanged(display_info_list);
EXPECT_EQ(2, Shell::GetScreen()->GetNumDisplays());
@@ -485,7 +494,7 @@ TEST_F(DisplayControllerTest, SwapPrimaryById) {
ASSERT_NE(primary_display.id(), third_display_info.id());
const internal::DisplayInfo& primary_display_info =
- display_manager->GetDisplayInfo(primary_display);
+ display_manager->GetDisplayInfo(primary_display.id());
std::vector<internal::DisplayInfo> display_info_list2;
display_info_list2.push_back(primary_display_info);
display_info_list2.push_back(third_display_info);
@@ -664,6 +673,8 @@ TEST_F(DisplayControllerTest, MAYBE_Rotate) {
ScreenAsh::GetSecondaryDisplay().bounds().ToString());
generator1.MoveMouseTo(50, 40);
EXPECT_EQ("50,40", event_handler.GetLocationAndReset());
+ EXPECT_EQ(gfx::Display::ROTATE_0, GetStoredRotation(display1.id()));
+ EXPECT_EQ(gfx::Display::ROTATE_0, GetStoredRotation(display2_id));
display_manager->SetDisplayRotation(display1.id(),
gfx::Display::ROTATE_90);
@@ -673,6 +684,8 @@ TEST_F(DisplayControllerTest, MAYBE_Rotate) {
ScreenAsh::GetSecondaryDisplay().bounds().ToString());
generator1.MoveMouseTo(50, 40);
EXPECT_EQ("40,69", event_handler.GetLocationAndReset());
+ EXPECT_EQ(gfx::Display::ROTATE_90, GetStoredRotation(display1.id()));
+ EXPECT_EQ(gfx::Display::ROTATE_0, GetStoredRotation(display2_id));
DisplayLayout display_layout(DisplayLayout::BOTTOM, 50);
display_controller->SetLayoutForCurrentDisplays(display_layout);
@@ -685,6 +698,8 @@ TEST_F(DisplayControllerTest, MAYBE_Rotate) {
EXPECT_EQ("200x150", root_windows[1]->bounds().size().ToString());
EXPECT_EQ("50,120 200x150",
ScreenAsh::GetSecondaryDisplay().bounds().ToString());
+ EXPECT_EQ(gfx::Display::ROTATE_90, GetStoredRotation(display1.id()));
+ EXPECT_EQ(gfx::Display::ROTATE_270, GetStoredRotation(display2_id));
aura::test::EventGenerator generator2(root_windows[1]);
generator2.MoveMouseTo(50, 40);
@@ -697,6 +712,8 @@ TEST_F(DisplayControllerTest, MAYBE_Rotate) {
// Dislay must share at least 100, so the x's offset becomes 20.
EXPECT_EQ("20,200 200x150",
ScreenAsh::GetSecondaryDisplay().bounds().ToString());
+ EXPECT_EQ(gfx::Display::ROTATE_180, GetStoredRotation(display1.id()));
+ EXPECT_EQ(gfx::Display::ROTATE_270, GetStoredRotation(display2_id));
generator1.MoveMouseTo(50, 40);
EXPECT_EQ("69,159", event_handler.GetLocationAndReset());
@@ -717,17 +734,32 @@ TEST_F(DisplayControllerTest, MAYBE_ScaleRootWindow) {
TestEventHandler event_handler;
Shell::GetInstance()->AddPreTargetHandler(&event_handler);
- UpdateDisplay("600x400*2@1.5");
+ UpdateDisplay("600x400*2@1.5,500x300");
gfx::Display display1 = Shell::GetScreen()->GetPrimaryDisplay();
+ gfx::Display display2 = ScreenAsh::GetSecondaryDisplay();
Shell::RootWindowList root_windows = Shell::GetAllRootWindows();
EXPECT_EQ("0,0 450x300", display1.bounds().ToString());
EXPECT_EQ("0,0 450x300", root_windows[0]->bounds().ToString());
+ EXPECT_EQ("450,0 500x300", display2.bounds().ToString());
+ EXPECT_EQ(1.5f, GetStoredUIScale(display1.id()));
+ EXPECT_EQ(1.0f, GetStoredUIScale(display2.id()));
aura::test::EventGenerator generator(root_windows[0]);
generator.MoveMouseTo(599, 200);
EXPECT_EQ("449,150", event_handler.GetLocationAndReset());
+ internal::DisplayManager* display_manager =
+ Shell::GetInstance()->display_manager();
+ display_manager->SetDisplayUIScale(display1.id(), 1.25);
+ display1 = Shell::GetScreen()->GetPrimaryDisplay();
+ display2 = ScreenAsh::GetSecondaryDisplay();
+ EXPECT_EQ("0,0 375x250", display1.bounds().ToString());
+ EXPECT_EQ("0,0 375x250", root_windows[0]->bounds().ToString());
+ EXPECT_EQ("375,0 500x300", display2.bounds().ToString());
+ EXPECT_EQ(1.25f, GetStoredUIScale(display1.id()));
+ EXPECT_EQ(1.0f, GetStoredUIScale(display2.id()));
+
Shell::GetInstance()->RemovePreTargetHandler(&event_handler);
}

Powered by Google App Engine
This is Rietveld 408576698