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

Side by Side Diff: ash/display/display_controller_unittest.cc

Issue 1108343002: Revert of Merge Prevent DisplayPreferences from saving incorrect rotations. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2357
Patch Set: Created 5 years, 7 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/display/display_controller.cc ('k') | ash/display/display_info.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 (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 "ash/display/display_controller.h" 5 #include "ash/display/display_controller.h"
6 6
7 #include "ash/ash_switches.h" 7 #include "ash/ash_switches.h"
8 #include "ash/display/display_info.h" 8 #include "ash/display/display_info.h"
9 #include "ash/display/display_layout_store.h" 9 #include "ash/display/display_layout_store.h"
10 #include "ash/display/display_manager.h" 10 #include "ash/display/display_manager.h"
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after
345 float touch_radius_x_; 345 float touch_radius_x_;
346 float touch_radius_y_; 346 float touch_radius_y_;
347 float scroll_x_offset_; 347 float scroll_x_offset_;
348 float scroll_y_offset_; 348 float scroll_y_offset_;
349 float scroll_x_offset_ordinal_; 349 float scroll_x_offset_ordinal_;
350 float scroll_y_offset_ordinal_; 350 float scroll_y_offset_ordinal_;
351 351
352 DISALLOW_COPY_AND_ASSIGN(TestEventHandler); 352 DISALLOW_COPY_AND_ASSIGN(TestEventHandler);
353 }; 353 };
354 354
355 gfx::Display::Rotation GetStoredRotation(int64 id) {
356 return Shell::GetInstance()->display_manager()->GetDisplayInfo(id).rotation();
357 }
358
355 float GetStoredUIScale(int64 id) { 359 float GetStoredUIScale(int64 id) {
356 return Shell::GetInstance()->display_manager()->GetDisplayInfo(id). 360 return Shell::GetInstance()->display_manager()->GetDisplayInfo(id).
357 GetEffectiveUIScale(); 361 GetEffectiveUIScale();
358 } 362 }
359 363
360 #if defined(USE_X11) 364 #if defined(USE_X11)
361 void GetPrimaryAndSeconary(aura::Window** primary, 365 void GetPrimaryAndSeconary(aura::Window** primary,
362 aura::Window** secondary) { 366 aura::Window** secondary) {
363 *primary = Shell::GetPrimaryRootWindow(); 367 *primary = Shell::GetPrimaryRootWindow();
364 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); 368 aura::Window::Windows root_windows = Shell::GetAllRootWindows();
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
546 EXPECT_LE(1, observer.GetActivationChangedCountAndReset()); 550 EXPECT_LE(1, observer.GetActivationChangedCountAndReset());
547 } 551 }
548 552
549 namespace { 553 namespace {
550 554
551 DisplayInfo CreateDisplayInfo(int64 id, 555 DisplayInfo CreateDisplayInfo(int64 id,
552 int y, 556 int y,
553 gfx::Display::Rotation rotation) { 557 gfx::Display::Rotation rotation) {
554 DisplayInfo info(id, "", false); 558 DisplayInfo info(id, "", false);
555 info.SetBounds(gfx::Rect(0, y, 500, 500)); 559 info.SetBounds(gfx::Rect(0, y, 500, 500));
556 info.SetRotation(rotation, gfx::Display::ROTATION_SOURCE_ACTIVE); 560 info.set_rotation(rotation);
557 return info; 561 return info;
558 } 562 }
559 563
560 DisplayInfo CreateMirroredDisplayInfo(int64 id, 564 DisplayInfo CreateMirroredDisplayInfo(int64 id,
561 float device_scale_factor) { 565 float device_scale_factor) {
562 DisplayInfo info = CreateDisplayInfo(id, 0, gfx::Display::ROTATE_0); 566 DisplayInfo info = CreateDisplayInfo(id, 0, gfx::Display::ROTATE_0);
563 info.set_device_scale_factor(device_scale_factor); 567 info.set_device_scale_factor(device_scale_factor);
564 return info; 568 return info;
565 } 569 }
566 570
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
675 // No change 679 // No change
676 UpdateDisplay("400x500*2,300x300"); 680 UpdateDisplay("400x500*2,300x300");
677 // We still call into Pre/PostDisplayConfigurationChange(). 681 // We still call into Pre/PostDisplayConfigurationChange().
678 EXPECT_EQ(1, observer.CountAndReset()); 682 EXPECT_EQ(1, observer.CountAndReset());
679 EXPECT_EQ(0, observer.GetFocusChangedCountAndReset()); 683 EXPECT_EQ(0, observer.GetFocusChangedCountAndReset());
680 EXPECT_EQ(0, observer.GetActivationChangedCountAndReset()); 684 EXPECT_EQ(0, observer.GetActivationChangedCountAndReset());
681 685
682 // Rotation 686 // Rotation
683 observer.GetRotationChangedCountAndReset(); // we only want to reset. 687 observer.GetRotationChangedCountAndReset(); // we only want to reset.
684 int64 primary_id = GetPrimaryDisplay().id(); 688 int64 primary_id = GetPrimaryDisplay().id();
685 display_manager->SetDisplayRotation(primary_id, gfx::Display::ROTATE_90, 689 display_manager->SetDisplayRotation(primary_id, gfx::Display::ROTATE_90);
686 gfx::Display::ROTATION_SOURCE_ACTIVE);
687 EXPECT_EQ(1, observer.GetRotationChangedCountAndReset()); 690 EXPECT_EQ(1, observer.GetRotationChangedCountAndReset());
688 EXPECT_EQ(1, observer.CountAndReset()); 691 EXPECT_EQ(1, observer.CountAndReset());
689 EXPECT_EQ(0, observer.GetFocusChangedCountAndReset()); 692 EXPECT_EQ(0, observer.GetFocusChangedCountAndReset());
690 EXPECT_EQ(0, observer.GetActivationChangedCountAndReset()); 693 EXPECT_EQ(0, observer.GetActivationChangedCountAndReset());
691 display_manager->SetDisplayRotation(primary_id, gfx::Display::ROTATE_90, 694 display_manager->SetDisplayRotation(primary_id, gfx::Display::ROTATE_90);
692 gfx::Display::ROTATION_SOURCE_ACTIVE);
693 EXPECT_EQ(0, observer.GetRotationChangedCountAndReset()); 695 EXPECT_EQ(0, observer.GetRotationChangedCountAndReset());
694 EXPECT_EQ(0, observer.CountAndReset()); 696 EXPECT_EQ(0, observer.CountAndReset());
695 EXPECT_EQ(0, observer.GetFocusChangedCountAndReset()); 697 EXPECT_EQ(0, observer.GetFocusChangedCountAndReset());
696 EXPECT_EQ(0, observer.GetActivationChangedCountAndReset()); 698 EXPECT_EQ(0, observer.GetActivationChangedCountAndReset());
697 699
698 // UI scale is eanbled only on internal display. 700 // UI scale is eanbled only on internal display.
699 int64 secondary_id = GetSecondaryDisplay().id(); 701 int64 secondary_id = GetSecondaryDisplay().id();
700 test::DisplayManagerTestApi(display_manager) 702 test::DisplayManagerTestApi(display_manager)
701 .SetInternalDisplayId(secondary_id); 703 .SetInternalDisplayId(secondary_id);
702 704
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after
1037 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); 1039 aura::Window::Windows root_windows = Shell::GetAllRootWindows();
1038 ui::test::EventGenerator generator1(root_windows[0]); 1040 ui::test::EventGenerator generator1(root_windows[0]);
1039 1041
1040 TestObserver observer; 1042 TestObserver observer;
1041 EXPECT_EQ("120x200", root_windows[0]->bounds().size().ToString()); 1043 EXPECT_EQ("120x200", root_windows[0]->bounds().size().ToString());
1042 EXPECT_EQ("150x200", root_windows[1]->bounds().size().ToString()); 1044 EXPECT_EQ("150x200", root_windows[1]->bounds().size().ToString());
1043 EXPECT_EQ("120,0 150x200", 1045 EXPECT_EQ("120,0 150x200",
1044 ScreenUtil::GetSecondaryDisplay().bounds().ToString()); 1046 ScreenUtil::GetSecondaryDisplay().bounds().ToString());
1045 generator1.MoveMouseToInHost(50, 40); 1047 generator1.MoveMouseToInHost(50, 40);
1046 EXPECT_EQ("50,40", event_handler.GetLocationAndReset()); 1048 EXPECT_EQ("50,40", event_handler.GetLocationAndReset());
1047 EXPECT_EQ(gfx::Display::ROTATE_0, GetActiveDisplayRotation(display1.id())); 1049 EXPECT_EQ(gfx::Display::ROTATE_0, GetStoredRotation(display1.id()));
1048 EXPECT_EQ(gfx::Display::ROTATE_0, GetActiveDisplayRotation(display2_id)); 1050 EXPECT_EQ(gfx::Display::ROTATE_0, GetStoredRotation(display2_id));
1049 EXPECT_EQ(0, observer.GetRotationChangedCountAndReset()); 1051 EXPECT_EQ(0, observer.GetRotationChangedCountAndReset());
1050 1052
1051 display_manager->SetDisplayRotation(display1.id(), gfx::Display::ROTATE_90, 1053 display_manager->SetDisplayRotation(display1.id(),
1052 gfx::Display::ROTATION_SOURCE_ACTIVE); 1054 gfx::Display::ROTATE_90);
1053 EXPECT_EQ("200x120", root_windows[0]->bounds().size().ToString()); 1055 EXPECT_EQ("200x120", root_windows[0]->bounds().size().ToString());
1054 EXPECT_EQ("150x200", root_windows[1]->bounds().size().ToString()); 1056 EXPECT_EQ("150x200", root_windows[1]->bounds().size().ToString());
1055 EXPECT_EQ("200,0 150x200", 1057 EXPECT_EQ("200,0 150x200",
1056 ScreenUtil::GetSecondaryDisplay().bounds().ToString()); 1058 ScreenUtil::GetSecondaryDisplay().bounds().ToString());
1057 generator1.MoveMouseToInHost(50, 40); 1059 generator1.MoveMouseToInHost(50, 40);
1058 EXPECT_EQ("40,69", event_handler.GetLocationAndReset()); 1060 EXPECT_EQ("40,69", event_handler.GetLocationAndReset());
1059 EXPECT_EQ(gfx::Display::ROTATE_90, GetActiveDisplayRotation(display1.id())); 1061 EXPECT_EQ(gfx::Display::ROTATE_90, GetStoredRotation(display1.id()));
1060 EXPECT_EQ(gfx::Display::ROTATE_0, GetActiveDisplayRotation(display2_id)); 1062 EXPECT_EQ(gfx::Display::ROTATE_0, GetStoredRotation(display2_id));
1061 EXPECT_EQ(1, observer.GetRotationChangedCountAndReset()); 1063 EXPECT_EQ(1, observer.GetRotationChangedCountAndReset());
1062 1064
1063 DisplayLayout display_layout(DisplayLayout::BOTTOM, 50); 1065 DisplayLayout display_layout(DisplayLayout::BOTTOM, 50);
1064 display_manager->SetLayoutForCurrentDisplays(display_layout); 1066 display_manager->SetLayoutForCurrentDisplays(display_layout);
1065 EXPECT_EQ("50,120 150x200", 1067 EXPECT_EQ("50,120 150x200",
1066 ScreenUtil::GetSecondaryDisplay().bounds().ToString()); 1068 ScreenUtil::GetSecondaryDisplay().bounds().ToString());
1067 1069
1068 display_manager->SetDisplayRotation(display2_id, gfx::Display::ROTATE_270, 1070 display_manager->SetDisplayRotation(display2_id,
1069 gfx::Display::ROTATION_SOURCE_ACTIVE); 1071 gfx::Display::ROTATE_270);
1070 EXPECT_EQ("200x120", root_windows[0]->bounds().size().ToString()); 1072 EXPECT_EQ("200x120", root_windows[0]->bounds().size().ToString());
1071 EXPECT_EQ("200x150", root_windows[1]->bounds().size().ToString()); 1073 EXPECT_EQ("200x150", root_windows[1]->bounds().size().ToString());
1072 EXPECT_EQ("50,120 200x150", 1074 EXPECT_EQ("50,120 200x150",
1073 ScreenUtil::GetSecondaryDisplay().bounds().ToString()); 1075 ScreenUtil::GetSecondaryDisplay().bounds().ToString());
1074 EXPECT_EQ(gfx::Display::ROTATE_90, GetActiveDisplayRotation(display1.id())); 1076 EXPECT_EQ(gfx::Display::ROTATE_90, GetStoredRotation(display1.id()));
1075 EXPECT_EQ(gfx::Display::ROTATE_270, GetActiveDisplayRotation(display2_id)); 1077 EXPECT_EQ(gfx::Display::ROTATE_270, GetStoredRotation(display2_id));
1076 EXPECT_EQ(1, observer.GetRotationChangedCountAndReset()); 1078 EXPECT_EQ(1, observer.GetRotationChangedCountAndReset());
1077 1079
1078 #if !defined(OS_WIN) 1080 #if !defined(OS_WIN)
1079 ui::test::EventGenerator generator2(root_windows[1]); 1081 ui::test::EventGenerator generator2(root_windows[1]);
1080 generator2.MoveMouseToInHost(50, 40); 1082 generator2.MoveMouseToInHost(50, 40);
1081 EXPECT_EQ("179,25", event_handler.GetLocationAndReset()); 1083 EXPECT_EQ("179,25", event_handler.GetLocationAndReset());
1082 display_manager->SetDisplayRotation(display1.id(), gfx::Display::ROTATE_180, 1084 display_manager->SetDisplayRotation(display1.id(),
1083 gfx::Display::ROTATION_SOURCE_ACTIVE); 1085 gfx::Display::ROTATE_180);
1084 1086
1085 EXPECT_EQ("120x200", root_windows[0]->bounds().size().ToString()); 1087 EXPECT_EQ("120x200", root_windows[0]->bounds().size().ToString());
1086 EXPECT_EQ("200x150", root_windows[1]->bounds().size().ToString()); 1088 EXPECT_EQ("200x150", root_windows[1]->bounds().size().ToString());
1087 // Dislay must share at least 100, so the x's offset becomes 20. 1089 // Dislay must share at least 100, so the x's offset becomes 20.
1088 EXPECT_EQ("20,200 200x150", 1090 EXPECT_EQ("20,200 200x150",
1089 ScreenUtil::GetSecondaryDisplay().bounds().ToString()); 1091 ScreenUtil::GetSecondaryDisplay().bounds().ToString());
1090 EXPECT_EQ(gfx::Display::ROTATE_180, GetActiveDisplayRotation(display1.id())); 1092 EXPECT_EQ(gfx::Display::ROTATE_180, GetStoredRotation(display1.id()));
1091 EXPECT_EQ(gfx::Display::ROTATE_270, GetActiveDisplayRotation(display2_id)); 1093 EXPECT_EQ(gfx::Display::ROTATE_270, GetStoredRotation(display2_id));
1092 EXPECT_EQ(1, observer.GetRotationChangedCountAndReset()); 1094 EXPECT_EQ(1, observer.GetRotationChangedCountAndReset());
1093 1095
1094 generator1.MoveMouseToInHost(50, 40); 1096 generator1.MoveMouseToInHost(50, 40);
1095 EXPECT_EQ("69,159", event_handler.GetLocationAndReset()); 1097 EXPECT_EQ("69,159", event_handler.GetLocationAndReset());
1096 #endif 1098 #endif
1097 1099
1098 Shell::GetInstance()->RemovePreTargetHandler(&event_handler); 1100 Shell::GetInstance()->RemovePreTargetHandler(&event_handler);
1099 } 1101 }
1100 1102
1101 TEST_F(DisplayControllerTest, ScaleRootWindow) { 1103 TEST_F(DisplayControllerTest, ScaleRootWindow) {
(...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after
1499 widget->GetNativeWindow()->GetRootWindow()); 1501 widget->GetNativeWindow()->GetRootWindow());
1500 event_generator.MoveMouseToCenterOf(widget->GetNativeWindow()); 1502 event_generator.MoveMouseToCenterOf(widget->GetNativeWindow());
1501 1503
1502 UpdateDisplay("300x300"); 1504 UpdateDisplay("300x300");
1503 watcher.Stop(); 1505 watcher.Stop();
1504 1506
1505 widget->CloseNow(); 1507 widget->CloseNow();
1506 } 1508 }
1507 1509
1508 } // namespace ash 1510 } // namespace ash
OLDNEW
« no previous file with comments | « ash/display/display_controller.cc ('k') | ash/display/display_info.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698