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 "ui/display/manager/display_manager.h" | 5 #include "ui/display/manager/display_manager.h" |
6 | 6 |
7 #include "ash/accelerators/accelerator_commands_aura.h" | 7 #include "ash/accelerators/accelerator_commands_aura.h" |
8 #include "ash/common/ash_switches.h" | 8 #include "ash/common/ash_switches.h" |
9 #include "ash/common/material_design/material_design_controller.h" | |
10 #include "ash/common/wm/window_state.h" | 9 #include "ash/common/wm/window_state.h" |
11 #include "ash/display/display_configuration_controller.h" | 10 #include "ash/display/display_configuration_controller.h" |
12 #include "ash/display/display_util.h" | 11 #include "ash/display/display_util.h" |
13 #include "ash/display/mirror_window_controller.h" | 12 #include "ash/display/mirror_window_controller.h" |
14 #include "ash/display/window_tree_host_manager.h" | 13 #include "ash/display/window_tree_host_manager.h" |
15 #include "ash/screen_util.h" | 14 #include "ash/screen_util.h" |
16 #include "ash/shell.h" | 15 #include "ash/shell.h" |
17 #include "ash/test/ash_md_test_base.h" | |
18 #include "ash/test/ash_test_base.h" | 16 #include "ash/test/ash_test_base.h" |
19 #include "ash/test/mirror_window_test_api.h" | 17 #include "ash/test/mirror_window_test_api.h" |
20 #include "ash/wm/window_state_aura.h" | 18 #include "ash/wm/window_state_aura.h" |
21 #include "base/command_line.h" | 19 #include "base/command_line.h" |
22 #include "base/format_macros.h" | 20 #include "base/format_macros.h" |
23 #include "base/strings/string_number_conversions.h" | 21 #include "base/strings/string_number_conversions.h" |
24 #include "base/strings/stringprintf.h" | 22 #include "base/strings/stringprintf.h" |
25 #include "build/build_config.h" | 23 #include "build/build_config.h" |
26 #include "grit/ash_strings.h" | 24 #include "grit/ash_strings.h" |
27 #include "ui/aura/client/aura_constants.h" | 25 #include "ui/aura/client/aura_constants.h" |
(...skipping 21 matching lines...) Expand all Loading... |
49 using base::StringPrintf; | 47 using base::StringPrintf; |
50 | 48 |
51 namespace { | 49 namespace { |
52 | 50 |
53 std::string ToDisplayName(int64_t id) { | 51 std::string ToDisplayName(int64_t id) { |
54 return "x-" + base::Int64ToString(id); | 52 return "x-" + base::Int64ToString(id); |
55 } | 53 } |
56 | 54 |
57 } // namespace | 55 } // namespace |
58 | 56 |
59 class DisplayManagerTest : public test::AshMDTestBase, | 57 class DisplayManagerTest : public test::AshTestBase, |
60 public display::DisplayObserver, | 58 public display::DisplayObserver, |
61 public aura::WindowObserver { | 59 public aura::WindowObserver { |
62 public: | 60 public: |
63 DisplayManagerTest() | 61 DisplayManagerTest() |
64 : removed_count_(0U), | 62 : removed_count_(0U), |
65 root_window_destroyed_(false), | 63 root_window_destroyed_(false), |
66 changed_metrics_(0U) {} | 64 changed_metrics_(0U) {} |
67 ~DisplayManagerTest() override {} | 65 ~DisplayManagerTest() override {} |
68 | 66 |
69 void SetUp() override { | 67 void SetUp() override { |
70 AshMDTestBase::SetUp(); | 68 AshTestBase::SetUp(); |
71 display::Screen::GetScreen()->AddObserver(this); | 69 display::Screen::GetScreen()->AddObserver(this); |
72 Shell::GetPrimaryRootWindow()->AddObserver(this); | 70 Shell::GetPrimaryRootWindow()->AddObserver(this); |
73 } | 71 } |
74 void TearDown() override { | 72 void TearDown() override { |
75 Shell::GetPrimaryRootWindow()->RemoveObserver(this); | 73 Shell::GetPrimaryRootWindow()->RemoveObserver(this); |
76 display::Screen::GetScreen()->RemoveObserver(this); | 74 display::Screen::GetScreen()->RemoveObserver(this); |
77 AshMDTestBase::TearDown(); | 75 AshTestBase::TearDown(); |
78 } | 76 } |
79 | 77 |
80 const vector<display::Display>& changed() const { return changed_; } | 78 const vector<display::Display>& changed() const { return changed_; } |
81 const vector<display::Display>& added() const { return added_; } | 79 const vector<display::Display>& added() const { return added_; } |
82 uint32_t changed_metrics() const { return changed_metrics_; } | 80 uint32_t changed_metrics() const { return changed_metrics_; } |
83 | 81 |
84 string GetCountSummary() const { | 82 string GetCountSummary() const { |
85 return StringPrintf("%" PRIuS " %" PRIuS " %" PRIuS, changed_.size(), | 83 return StringPrintf("%" PRIuS " %" PRIuS " %" PRIuS, changed_.size(), |
86 added_.size(), removed_count_); | 84 added_.size(), removed_count_); |
87 } | 85 } |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
135 private: | 133 private: |
136 vector<display::Display> changed_; | 134 vector<display::Display> changed_; |
137 vector<display::Display> added_; | 135 vector<display::Display> added_; |
138 size_t removed_count_; | 136 size_t removed_count_; |
139 bool root_window_destroyed_; | 137 bool root_window_destroyed_; |
140 uint32_t changed_metrics_; | 138 uint32_t changed_metrics_; |
141 | 139 |
142 DISALLOW_COPY_AND_ASSIGN(DisplayManagerTest); | 140 DISALLOW_COPY_AND_ASSIGN(DisplayManagerTest); |
143 }; | 141 }; |
144 | 142 |
145 INSTANTIATE_TEST_CASE_P( | 143 TEST_F(DisplayManagerTest, UpdateDisplayTest) { |
146 /* prefix intentionally left blank due to only one parameterization */, | |
147 DisplayManagerTest, | |
148 testing::Values(MaterialDesignController::NON_MATERIAL, | |
149 MaterialDesignController::MATERIAL_NORMAL, | |
150 MaterialDesignController::MATERIAL_EXPERIMENTAL)); | |
151 | |
152 TEST_P(DisplayManagerTest, UpdateDisplayTest) { | |
153 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); | 144 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); |
154 | 145 |
155 // Update primary and add seconary. | 146 // Update primary and add seconary. |
156 UpdateDisplay("100+0-500x500,0+501-400x400"); | 147 UpdateDisplay("100+0-500x500,0+501-400x400"); |
157 EXPECT_EQ(2U, display_manager()->GetNumDisplays()); | 148 EXPECT_EQ(2U, display_manager()->GetNumDisplays()); |
158 EXPECT_EQ("0,0 500x500", | 149 EXPECT_EQ("0,0 500x500", |
159 display_manager()->GetDisplayAt(0).bounds().ToString()); | 150 display_manager()->GetDisplayAt(0).bounds().ToString()); |
160 | 151 |
161 EXPECT_EQ("2 1 0", GetCountSummary()); | 152 EXPECT_EQ("2 1 0", GetCountSummary()); |
162 EXPECT_EQ(display_manager()->GetDisplayAt(1).id(), changed()[0].id()); | 153 EXPECT_EQ(display_manager()->GetDisplayAt(1).id(), changed()[0].id()); |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
244 // Changing primary will update secondary as well. | 235 // Changing primary will update secondary as well. |
245 UpdateDisplay("0+0-800x600,1000+1000-600x400"); | 236 UpdateDisplay("0+0-800x600,1000+1000-600x400"); |
246 EXPECT_EQ("2 0 0", GetCountSummary()); | 237 EXPECT_EQ("2 0 0", GetCountSummary()); |
247 reset(); | 238 reset(); |
248 EXPECT_EQ("0,0 800x600", | 239 EXPECT_EQ("0,0 800x600", |
249 display_manager()->GetDisplayAt(0).bounds().ToString()); | 240 display_manager()->GetDisplayAt(0).bounds().ToString()); |
250 EXPECT_EQ("800,0 600x400", | 241 EXPECT_EQ("800,0 600x400", |
251 display_manager()->GetDisplayAt(1).bounds().ToString()); | 242 display_manager()->GetDisplayAt(1).bounds().ToString()); |
252 } | 243 } |
253 | 244 |
254 TEST_P(DisplayManagerTest, ScaleOnlyChange) { | 245 TEST_F(DisplayManagerTest, ScaleOnlyChange) { |
255 display_manager()->ToggleDisplayScaleFactor(); | 246 display_manager()->ToggleDisplayScaleFactor(); |
256 EXPECT_TRUE(changed_metrics() & | 247 EXPECT_TRUE(changed_metrics() & |
257 display::DisplayObserver::DISPLAY_METRIC_BOUNDS); | 248 display::DisplayObserver::DISPLAY_METRIC_BOUNDS); |
258 EXPECT_TRUE(changed_metrics() & | 249 EXPECT_TRUE(changed_metrics() & |
259 display::DisplayObserver::DISPLAY_METRIC_WORK_AREA); | 250 display::DisplayObserver::DISPLAY_METRIC_WORK_AREA); |
260 } | 251 } |
261 | 252 |
262 // Test in emulation mode (use_fullscreen_host_window=false) | 253 // Test in emulation mode (use_fullscreen_host_window=false) |
263 TEST_P(DisplayManagerTest, EmulatorTest) { | 254 TEST_F(DisplayManagerTest, EmulatorTest) { |
264 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); | 255 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); |
265 | 256 |
266 display_manager()->AddRemoveDisplay(); | 257 display_manager()->AddRemoveDisplay(); |
267 // Update primary and add seconary. | 258 // Update primary and add seconary. |
268 EXPECT_EQ(2U, display_manager()->GetNumDisplays()); | 259 EXPECT_EQ(2U, display_manager()->GetNumDisplays()); |
269 EXPECT_EQ("1 1 0", GetCountSummary()); | 260 EXPECT_EQ("1 1 0", GetCountSummary()); |
270 reset(); | 261 reset(); |
271 | 262 |
272 display_manager()->AddRemoveDisplay(); | 263 display_manager()->AddRemoveDisplay(); |
273 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); | 264 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); |
274 EXPECT_EQ("0 0 1", GetCountSummary()); | 265 EXPECT_EQ("0 0 1", GetCountSummary()); |
275 reset(); | 266 reset(); |
276 | 267 |
277 display_manager()->AddRemoveDisplay(); | 268 display_manager()->AddRemoveDisplay(); |
278 EXPECT_EQ(2U, display_manager()->GetNumDisplays()); | 269 EXPECT_EQ(2U, display_manager()->GetNumDisplays()); |
279 EXPECT_EQ("1 1 0", GetCountSummary()); | 270 EXPECT_EQ("1 1 0", GetCountSummary()); |
280 } | 271 } |
281 | 272 |
282 // Tests support for 3 displays. | 273 // Tests support for 3 displays. |
283 TEST_P(DisplayManagerTest, UpdateThreeDisplaysWithDefaultLayout) { | 274 TEST_F(DisplayManagerTest, UpdateThreeDisplaysWithDefaultLayout) { |
284 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); | 275 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); |
285 | 276 |
286 // Test with three displays. Native origin will not affect ash | 277 // Test with three displays. Native origin will not affect ash |
287 // display layout. | 278 // display layout. |
288 UpdateDisplay("0+0-640x480,1000+0-320x200,2000+0-400x300"); | 279 UpdateDisplay("0+0-640x480,1000+0-320x200,2000+0-400x300"); |
289 | 280 |
290 EXPECT_EQ(3U, display_manager()->GetNumDisplays()); | 281 EXPECT_EQ(3U, display_manager()->GetNumDisplays()); |
291 EXPECT_EQ("0,0 640x480", | 282 EXPECT_EQ("0,0 640x480", |
292 display_manager()->GetDisplayAt(0).bounds().ToString()); | 283 display_manager()->GetDisplayAt(0).bounds().ToString()); |
293 EXPECT_EQ("640,0 320x200", | 284 EXPECT_EQ("640,0 320x200", |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
332 UpdateDisplay("640x480,320x200,400x300"); | 323 UpdateDisplay("640x480,320x200,400x300"); |
333 | 324 |
334 EXPECT_EQ("0,0 640x480", | 325 EXPECT_EQ("0,0 640x480", |
335 display_manager()->GetDisplayAt(0).bounds().ToString()); | 326 display_manager()->GetDisplayAt(0).bounds().ToString()); |
336 EXPECT_EQ("10,480 320x200", | 327 EXPECT_EQ("10,480 320x200", |
337 display_manager()->GetDisplayAt(1).bounds().ToString()); | 328 display_manager()->GetDisplayAt(1).bounds().ToString()); |
338 EXPECT_EQ("20,680 400x300", | 329 EXPECT_EQ("20,680 400x300", |
339 display_manager()->GetDisplayAt(2).bounds().ToString()); | 330 display_manager()->GetDisplayAt(2).bounds().ToString()); |
340 } | 331 } |
341 | 332 |
342 TEST_P(DisplayManagerTest, LayoutMorethanThreeDisplaysTest) { | 333 TEST_F(DisplayManagerTest, LayoutMorethanThreeDisplaysTest) { |
343 int64_t primary_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); | 334 int64_t primary_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); |
344 display::DisplayIdList list = display::test::CreateDisplayIdListN( | 335 display::DisplayIdList list = display::test::CreateDisplayIdListN( |
345 3, primary_id, primary_id + 1, primary_id + 2); | 336 3, primary_id, primary_id + 1, primary_id + 2); |
346 { | 337 { |
347 // Layout: [2] | 338 // Layout: [2] |
348 // [1][P] | 339 // [1][P] |
349 display::DisplayLayoutBuilder builder(primary_id); | 340 display::DisplayLayoutBuilder builder(primary_id); |
350 builder.AddDisplayPlacement(list[1], primary_id, | 341 builder.AddDisplayPlacement(list[1], primary_id, |
351 display::DisplayPlacement::LEFT, 10); | 342 display::DisplayPlacement::LEFT, 10); |
352 builder.AddDisplayPlacement(list[2], list[1], | 343 builder.AddDisplayPlacement(list[2], list[1], |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
450 EXPECT_EQ("-290,480 300x200", | 441 EXPECT_EQ("-290,480 300x200", |
451 display_manager()->GetDisplayAt(3).bounds().ToString()); | 442 display_manager()->GetDisplayAt(3).bounds().ToString()); |
452 // 1st is the bottom of 3rd. | 443 // 1st is the bottom of 3rd. |
453 EXPECT_EQ("-280,680 320x200", | 444 EXPECT_EQ("-280,680 320x200", |
454 display_manager()->GetDisplayAt(1).bounds().ToString()); | 445 display_manager()->GetDisplayAt(1).bounds().ToString()); |
455 } | 446 } |
456 } | 447 } |
457 | 448 |
458 // Makes sure that layouts with overlapped displays are detected and fixed when | 449 // Makes sure that layouts with overlapped displays are detected and fixed when |
459 // applied. | 450 // applied. |
460 TEST_P(DisplayManagerTest, NoOverlappedDisplays) { | 451 TEST_F(DisplayManagerTest, NoOverlappedDisplays) { |
461 int64_t primary_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); | 452 int64_t primary_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); |
462 { | 453 { |
463 // Layout with multiple overlaps and special cases: | 454 // Layout with multiple overlaps and special cases: |
464 // | 455 // |
465 // +-----+ | 456 // +-----+ |
466 // +----+-+6 | | 457 // +----+-+6 | |
467 // | 5 | | | | 458 // | 5 | | | |
468 // +----+----+ | | | 459 // +----+----+ | | |
469 // | 7 | | | | | 460 // | 7 | | | | |
470 // +----+----+-+---+---+-+---------+ | 461 // +----+----+-+---+---+-+---------+ |
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
737 EXPECT_EQ(3U, display_manager()->GetNumDisplays()); | 728 EXPECT_EQ(3U, display_manager()->GetNumDisplays()); |
738 EXPECT_EQ(gfx::Rect(0, 0, 696, 500), | 729 EXPECT_EQ(gfx::Rect(0, 0, 696, 500), |
739 display_manager()->GetDisplayAt(0).bounds()); | 730 display_manager()->GetDisplayAt(0).bounds()); |
740 EXPECT_EQ(gfx::Rect(0, -500, 696, 500), | 731 EXPECT_EQ(gfx::Rect(0, -500, 696, 500), |
741 display_manager()->GetDisplayAt(1).bounds()); | 732 display_manager()->GetDisplayAt(1).bounds()); |
742 EXPECT_EQ(gfx::Rect(-696, -500, 696, 500), | 733 EXPECT_EQ(gfx::Rect(-696, -500, 696, 500), |
743 display_manager()->GetDisplayAt(2).bounds()); | 734 display_manager()->GetDisplayAt(2).bounds()); |
744 } | 735 } |
745 } | 736 } |
746 | 737 |
747 TEST_P(DisplayManagerTest, NoOverlappedDisplaysNotFitBetweenTwo) { | 738 TEST_F(DisplayManagerTest, NoOverlappedDisplaysNotFitBetweenTwo) { |
748 // +------+--+----+--+------+ | 739 // +------+--+----+--+------+ |
749 // | 1 | | 2 | | 3 | | 740 // | 1 | | 2 | | 3 | |
750 // | | | | | | | 741 // | | | | | | |
751 // | | | | | | | 742 // | | | | | | |
752 // | | | | | | | 743 // | | | | | | |
753 // +-+----+--+----+--+---+--+ | 744 // +-+----+--+----+--+---+--+ |
754 // | P | | 745 // | P | |
755 // | | | 746 // | | |
756 // | | | 747 // | | |
757 // | | | 748 // | | |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
791 EXPECT_EQ(gfx::Rect(0, 0, 1200, 500), | 782 EXPECT_EQ(gfx::Rect(0, 0, 1200, 500), |
792 display_manager()->GetDisplayAt(0).bounds()); | 783 display_manager()->GetDisplayAt(0).bounds()); |
793 EXPECT_EQ(gfx::Rect(-110, -500, 600, 500), | 784 EXPECT_EQ(gfx::Rect(-110, -500, 600, 500), |
794 display_manager()->GetDisplayAt(1).bounds()); | 785 display_manager()->GetDisplayAt(1).bounds()); |
795 EXPECT_EQ(gfx::Rect(490, -500, 600, 500), | 786 EXPECT_EQ(gfx::Rect(490, -500, 600, 500), |
796 display_manager()->GetDisplayAt(2).bounds()); | 787 display_manager()->GetDisplayAt(2).bounds()); |
797 EXPECT_EQ(gfx::Rect(1090, -500, 600, 500), | 788 EXPECT_EQ(gfx::Rect(1090, -500, 600, 500), |
798 display_manager()->GetDisplayAt(3).bounds()); | 789 display_manager()->GetDisplayAt(3).bounds()); |
799 } | 790 } |
800 | 791 |
801 TEST_P(DisplayManagerTest, NoOverlappedDisplaysAfterResolutionChange) { | 792 TEST_F(DisplayManagerTest, NoOverlappedDisplaysAfterResolutionChange) { |
802 // Starting with a good layout with no overlaps, test that if the resolution | 793 // Starting with a good layout with no overlaps, test that if the resolution |
803 // of one of the displays is changed, it won't result in any overlaps. | 794 // of one of the displays is changed, it won't result in any overlaps. |
804 // | 795 // |
805 // +-------------------+ | 796 // +-------------------+ |
806 // | 4 | | 797 // | 4 | |
807 // | | | 798 // | | |
808 // | | | 799 // | | |
809 // | | | 800 // | | |
810 // +----+----+---------+----+----+ | 801 // +----+----+---------+----+----+ |
811 // | 1 | 2 | 3 | | 802 // | 1 | 2 | 3 | |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
880 EXPECT_EQ(gfx::Rect(-250, -500, 500, 500), | 871 EXPECT_EQ(gfx::Rect(-250, -500, 500, 500), |
881 display_manager()->GetDisplayAt(1).bounds()); | 872 display_manager()->GetDisplayAt(1).bounds()); |
882 EXPECT_EQ(gfx::Rect(250, -600, 600, 600), | 873 EXPECT_EQ(gfx::Rect(250, -600, 600, 600), |
883 display_manager()->GetDisplayAt(2).bounds()); | 874 display_manager()->GetDisplayAt(2).bounds()); |
884 EXPECT_EQ(gfx::Rect(850, -500, 500, 500), | 875 EXPECT_EQ(gfx::Rect(850, -500, 500, 500), |
885 display_manager()->GetDisplayAt(3).bounds()); | 876 display_manager()->GetDisplayAt(3).bounds()); |
886 EXPECT_EQ(gfx::Rect(0, -1100, 1000, 500), | 877 EXPECT_EQ(gfx::Rect(0, -1100, 1000, 500), |
887 display_manager()->GetDisplayAt(4).bounds()); | 878 display_manager()->GetDisplayAt(4).bounds()); |
888 } | 879 } |
889 | 880 |
890 TEST_P(DisplayManagerTest, NoOverlappedDisplaysWithDetachedDisplays) { | 881 TEST_F(DisplayManagerTest, NoOverlappedDisplaysWithDetachedDisplays) { |
891 // Detached displays that intersect other non-detached displays. | 882 // Detached displays that intersect other non-detached displays. |
892 // | 883 // |
893 // +---------+---------+---------+ | 884 // +---------+---------+---------+ |
894 // | 1 | 2 | 3 | | 885 // | 1 | 2 | 3 | |
895 // | | | | | 886 // | | | | |
896 // | | | | | 887 // | | | | |
897 // | | | | | 888 // | | | | |
898 // +----+----+-----+---+----+----+ | 889 // +----+----+-----+---+----+----+ |
899 // | 4, 5 | P | | 890 // | 4, 5 | P | |
900 // | detached | | | 891 // | detached | | |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
967 expected_layout_builder.AddDisplayPlacement( | 958 expected_layout_builder.AddDisplayPlacement( |
968 list[4], primary_id, display::DisplayPlacement::BOTTOM, 0); | 959 list[4], primary_id, display::DisplayPlacement::BOTTOM, 0); |
969 expected_layout_builder.AddDisplayPlacement( | 960 expected_layout_builder.AddDisplayPlacement( |
970 list[5], list[4], display::DisplayPlacement::BOTTOM, 0); | 961 list[5], list[4], display::DisplayPlacement::BOTTOM, 0); |
971 | 962 |
972 const display::DisplayLayout& layout = | 963 const display::DisplayLayout& layout = |
973 display_manager()->GetCurrentResolvedDisplayLayout(); | 964 display_manager()->GetCurrentResolvedDisplayLayout(); |
974 EXPECT_TRUE(layout.HasSamePlacementList(*(expected_layout_builder.Build()))); | 965 EXPECT_TRUE(layout.HasSamePlacementList(*(expected_layout_builder.Build()))); |
975 } | 966 } |
976 | 967 |
977 TEST_P(DisplayManagerTest, NoMirrorInThreeDisplays) { | 968 TEST_F(DisplayManagerTest, NoMirrorInThreeDisplays) { |
978 UpdateDisplay("640x480,320x200,400x300"); | 969 UpdateDisplay("640x480,320x200,400x300"); |
979 ash::Shell::GetInstance()->display_configuration_controller()->SetMirrorMode( | 970 ash::Shell::GetInstance()->display_configuration_controller()->SetMirrorMode( |
980 true, true); | 971 true, true); |
981 EXPECT_FALSE(display_manager()->IsInMirrorMode()); | 972 EXPECT_FALSE(display_manager()->IsInMirrorMode()); |
982 EXPECT_EQ(3u, display_manager()->GetNumDisplays()); | 973 EXPECT_EQ(3u, display_manager()->GetNumDisplays()); |
983 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_ASH_DISPLAY_MIRRORING_NOT_SUPPORTED), | 974 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_ASH_DISPLAY_MIRRORING_NOT_SUPPORTED), |
984 GetDisplayErrorNotificationMessageForTest()); | 975 GetDisplayErrorNotificationMessageForTest()); |
985 } | 976 } |
986 | 977 |
987 TEST_P(DisplayManagerTest, OverscanInsetsTest) { | 978 TEST_F(DisplayManagerTest, OverscanInsetsTest) { |
988 UpdateDisplay("0+0-500x500,0+501-400x400"); | 979 UpdateDisplay("0+0-500x500,0+501-400x400"); |
989 reset(); | 980 reset(); |
990 ASSERT_EQ(2u, display_manager()->GetNumDisplays()); | 981 ASSERT_EQ(2u, display_manager()->GetNumDisplays()); |
991 const display::ManagedDisplayInfo display_info1 = GetDisplayInfoAt(0); | 982 const display::ManagedDisplayInfo display_info1 = GetDisplayInfoAt(0); |
992 const display::ManagedDisplayInfo display_info2 = GetDisplayInfoAt(1); | 983 const display::ManagedDisplayInfo display_info2 = GetDisplayInfoAt(1); |
993 | 984 |
994 display_manager()->SetOverscanInsets(display_info2.id(), | 985 display_manager()->SetOverscanInsets(display_info2.id(), |
995 gfx::Insets(13, 12, 11, 10)); | 986 gfx::Insets(13, 12, 11, 10)); |
996 | 987 |
997 std::vector<display::Display> changed_displays = changed(); | 988 std::vector<display::Display> changed_displays = changed(); |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1099 display_manager()->SetOverscanInsets(primary_id, gfx::Insets(0, 0, 0, 0)); | 1090 display_manager()->SetOverscanInsets(primary_id, gfx::Insets(0, 0, 0, 0)); |
1100 EXPECT_TRUE(changed_metrics() & | 1091 EXPECT_TRUE(changed_metrics() & |
1101 display::DisplayObserver::DISPLAY_METRIC_BOUNDS); | 1092 display::DisplayObserver::DISPLAY_METRIC_BOUNDS); |
1102 EXPECT_TRUE(changed_metrics() & | 1093 EXPECT_TRUE(changed_metrics() & |
1103 display::DisplayObserver::DISPLAY_METRIC_WORK_AREA); | 1094 display::DisplayObserver::DISPLAY_METRIC_WORK_AREA); |
1104 EXPECT_EQ( | 1095 EXPECT_EQ( |
1105 "0,0 500x500", | 1096 "0,0 500x500", |
1106 display::Screen::GetScreen()->GetPrimaryDisplay().bounds().ToString()); | 1097 display::Screen::GetScreen()->GetPrimaryDisplay().bounds().ToString()); |
1107 } | 1098 } |
1108 | 1099 |
1109 TEST_P(DisplayManagerTest, ZeroOverscanInsets) { | 1100 TEST_F(DisplayManagerTest, ZeroOverscanInsets) { |
1110 // Make sure the display change events is emitted for overscan inset changes. | 1101 // Make sure the display change events is emitted for overscan inset changes. |
1111 UpdateDisplay("0+0-500x500,0+501-400x400"); | 1102 UpdateDisplay("0+0-500x500,0+501-400x400"); |
1112 ASSERT_EQ(2u, display_manager()->GetNumDisplays()); | 1103 ASSERT_EQ(2u, display_manager()->GetNumDisplays()); |
1113 int64_t display2_id = display_manager()->GetDisplayAt(1).id(); | 1104 int64_t display2_id = display_manager()->GetDisplayAt(1).id(); |
1114 | 1105 |
1115 reset(); | 1106 reset(); |
1116 display_manager()->SetOverscanInsets(display2_id, gfx::Insets(0, 0, 0, 0)); | 1107 display_manager()->SetOverscanInsets(display2_id, gfx::Insets(0, 0, 0, 0)); |
1117 EXPECT_EQ(0u, changed().size()); | 1108 EXPECT_EQ(0u, changed().size()); |
1118 | 1109 |
1119 reset(); | 1110 reset(); |
1120 display_manager()->SetOverscanInsets(display2_id, gfx::Insets(1, 0, 0, 0)); | 1111 display_manager()->SetOverscanInsets(display2_id, gfx::Insets(1, 0, 0, 0)); |
1121 EXPECT_EQ(1u, changed().size()); | 1112 EXPECT_EQ(1u, changed().size()); |
1122 EXPECT_EQ(display2_id, changed()[0].id()); | 1113 EXPECT_EQ(display2_id, changed()[0].id()); |
1123 | 1114 |
1124 reset(); | 1115 reset(); |
1125 display_manager()->SetOverscanInsets(display2_id, gfx::Insets(0, 0, 0, 0)); | 1116 display_manager()->SetOverscanInsets(display2_id, gfx::Insets(0, 0, 0, 0)); |
1126 EXPECT_EQ(1u, changed().size()); | 1117 EXPECT_EQ(1u, changed().size()); |
1127 EXPECT_EQ(display2_id, changed()[0].id()); | 1118 EXPECT_EQ(display2_id, changed()[0].id()); |
1128 } | 1119 } |
1129 | 1120 |
1130 TEST_P(DisplayManagerTest, TouchCalibrationTest) { | 1121 TEST_F(DisplayManagerTest, TouchCalibrationTest) { |
1131 UpdateDisplay("0+0-500x500,0+501-1024x600"); | 1122 UpdateDisplay("0+0-500x500,0+501-1024x600"); |
1132 reset(); | 1123 reset(); |
1133 | 1124 |
1134 ASSERT_EQ(2u, display_manager()->GetNumDisplays()); | 1125 ASSERT_EQ(2u, display_manager()->GetNumDisplays()); |
1135 const display::ManagedDisplayInfo display_info1 = GetDisplayInfoAt(0); | 1126 const display::ManagedDisplayInfo display_info1 = GetDisplayInfoAt(0); |
1136 const display::ManagedDisplayInfo display_info2 = GetDisplayInfoAt(1); | 1127 const display::ManagedDisplayInfo display_info2 = GetDisplayInfoAt(1); |
1137 | 1128 |
1138 EXPECT_FALSE(display_info2.has_touch_calibration_data()); | 1129 EXPECT_FALSE(display_info2.has_touch_calibration_data()); |
1139 | 1130 |
1140 display::TouchCalibrationData::CalibrationPointPairQuad point_pair_quad = { | 1131 display::TouchCalibrationData::CalibrationPointPairQuad point_pair_quad = { |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1190 std::vector<display::ManagedDisplayInfo> display_info_list; | 1181 std::vector<display::ManagedDisplayInfo> display_info_list; |
1191 display_info_list.push_back(display_info1); | 1182 display_info_list.push_back(display_info1); |
1192 display_info_list.push_back(display_info2); | 1183 display_info_list.push_back(display_info2); |
1193 display_manager()->OnNativeDisplaysChanged(display_info_list); | 1184 display_manager()->OnNativeDisplaysChanged(display_info_list); |
1194 updated_display_info2 = GetDisplayInfoAt(1); | 1185 updated_display_info2 = GetDisplayInfoAt(1); |
1195 | 1186 |
1196 EXPECT_FALSE(updated_display_info2.has_touch_calibration_data()); | 1187 EXPECT_FALSE(updated_display_info2.has_touch_calibration_data()); |
1197 EXPECT_EQ(touch_data, updated_display_info2.GetTouchCalibrationData()); | 1188 EXPECT_EQ(touch_data, updated_display_info2.GetTouchCalibrationData()); |
1198 } | 1189 } |
1199 | 1190 |
1200 TEST_P(DisplayManagerTest, TestDeviceScaleOnlyChange) { | 1191 TEST_F(DisplayManagerTest, TestDeviceScaleOnlyChange) { |
1201 UpdateDisplay("1000x600"); | 1192 UpdateDisplay("1000x600"); |
1202 aura::WindowTreeHost* host = Shell::GetPrimaryRootWindow()->GetHost(); | 1193 aura::WindowTreeHost* host = Shell::GetPrimaryRootWindow()->GetHost(); |
1203 EXPECT_EQ(1, host->compositor()->device_scale_factor()); | 1194 EXPECT_EQ(1, host->compositor()->device_scale_factor()); |
1204 EXPECT_EQ("1000x600", | 1195 EXPECT_EQ("1000x600", |
1205 Shell::GetPrimaryRootWindow()->bounds().size().ToString()); | 1196 Shell::GetPrimaryRootWindow()->bounds().size().ToString()); |
1206 EXPECT_EQ("1 0 0", GetCountSummary()); | 1197 EXPECT_EQ("1 0 0", GetCountSummary()); |
1207 | 1198 |
1208 UpdateDisplay("1000x600*2"); | 1199 UpdateDisplay("1000x600*2"); |
1209 EXPECT_EQ(2, host->compositor()->device_scale_factor()); | 1200 EXPECT_EQ(2, host->compositor()->device_scale_factor()); |
1210 EXPECT_EQ("2 0 0", GetCountSummary()); | 1201 EXPECT_EQ("2 0 0", GetCountSummary()); |
1211 EXPECT_EQ("500x300", | 1202 EXPECT_EQ("500x300", |
1212 Shell::GetPrimaryRootWindow()->bounds().size().ToString()); | 1203 Shell::GetPrimaryRootWindow()->bounds().size().ToString()); |
1213 } | 1204 } |
1214 | 1205 |
1215 display::ManagedDisplayInfo CreateDisplayInfo(int64_t id, | 1206 display::ManagedDisplayInfo CreateDisplayInfo(int64_t id, |
1216 const gfx::Rect& bounds) { | 1207 const gfx::Rect& bounds) { |
1217 display::ManagedDisplayInfo info(id, ToDisplayName(id), false); | 1208 display::ManagedDisplayInfo info(id, ToDisplayName(id), false); |
1218 info.SetBounds(bounds); | 1209 info.SetBounds(bounds); |
1219 return info; | 1210 return info; |
1220 } | 1211 } |
1221 | 1212 |
1222 TEST_P(DisplayManagerTest, TestNativeDisplaysChanged) { | 1213 TEST_F(DisplayManagerTest, TestNativeDisplaysChanged) { |
1223 const int64_t internal_display_id = | 1214 const int64_t internal_display_id = |
1224 display::test::DisplayManagerTestApi(display_manager()) | 1215 display::test::DisplayManagerTestApi(display_manager()) |
1225 .SetFirstDisplayAsInternalDisplay(); | 1216 .SetFirstDisplayAsInternalDisplay(); |
1226 const int external_id = 10; | 1217 const int external_id = 10; |
1227 const int mirror_id = 11; | 1218 const int mirror_id = 11; |
1228 const int64_t invalid_id = display::kInvalidDisplayId; | 1219 const int64_t invalid_id = display::kInvalidDisplayId; |
1229 const display::ManagedDisplayInfo internal_display_info = | 1220 const display::ManagedDisplayInfo internal_display_info = |
1230 CreateDisplayInfo(internal_display_id, gfx::Rect(0, 0, 500, 500)); | 1221 CreateDisplayInfo(internal_display_id, gfx::Rect(0, 0, 500, 500)); |
1231 const display::ManagedDisplayInfo external_display_info = | 1222 const display::ManagedDisplayInfo external_display_info = |
1232 CreateDisplayInfo(external_id, gfx::Rect(1, 1, 100, 100)); | 1223 CreateDisplayInfo(external_id, gfx::Rect(1, 1, 100, 100)); |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1377 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); | 1368 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); |
1378 EXPECT_EQ( | 1369 EXPECT_EQ( |
1379 "0,0 500x500", | 1370 "0,0 500x500", |
1380 GetDisplayInfoForId(internal_display_id).bounds_in_native().ToString()); | 1371 GetDisplayInfoForId(internal_display_id).bounds_in_native().ToString()); |
1381 EXPECT_EQ(1U, display_manager()->num_connected_displays()); | 1372 EXPECT_EQ(1U, display_manager()->num_connected_displays()); |
1382 EXPECT_FALSE(display_manager()->IsInMirrorMode()); | 1373 EXPECT_FALSE(display_manager()->IsInMirrorMode()); |
1383 } | 1374 } |
1384 | 1375 |
1385 // Make sure crash does not happen if add and remove happens at the same time. | 1376 // Make sure crash does not happen if add and remove happens at the same time. |
1386 // See: crbug.com/414394 | 1377 // See: crbug.com/414394 |
1387 TEST_P(DisplayManagerTest, DisplayAddRemoveAtTheSameTime) { | 1378 TEST_F(DisplayManagerTest, DisplayAddRemoveAtTheSameTime) { |
1388 UpdateDisplay("100+0-500x500,0+501-400x400"); | 1379 UpdateDisplay("100+0-500x500,0+501-400x400"); |
1389 | 1380 |
1390 const int64_t primary_id = WindowTreeHostManager::GetPrimaryDisplayId(); | 1381 const int64_t primary_id = WindowTreeHostManager::GetPrimaryDisplayId(); |
1391 const int64_t secondary_id = display_manager()->GetSecondaryDisplay().id(); | 1382 const int64_t secondary_id = display_manager()->GetSecondaryDisplay().id(); |
1392 | 1383 |
1393 display::ManagedDisplayInfo primary_info = | 1384 display::ManagedDisplayInfo primary_info = |
1394 display_manager()->GetDisplayInfo(primary_id); | 1385 display_manager()->GetDisplayInfo(primary_id); |
1395 display::ManagedDisplayInfo secondary_info = | 1386 display::ManagedDisplayInfo secondary_info = |
1396 display_manager()->GetDisplayInfo(secondary_id); | 1387 display_manager()->GetDisplayInfo(secondary_id); |
1397 | 1388 |
1398 // An id which is different from primary and secondary. | 1389 // An id which is different from primary and secondary. |
1399 const int64_t third_id = secondary_id + 1; | 1390 const int64_t third_id = secondary_id + 1; |
1400 | 1391 |
1401 display::ManagedDisplayInfo third_info = | 1392 display::ManagedDisplayInfo third_info = |
1402 CreateDisplayInfo(third_id, gfx::Rect(0, 0, 600, 600)); | 1393 CreateDisplayInfo(third_id, gfx::Rect(0, 0, 600, 600)); |
1403 | 1394 |
1404 std::vector<display::ManagedDisplayInfo> display_info_list; | 1395 std::vector<display::ManagedDisplayInfo> display_info_list; |
1405 display_info_list.push_back(third_info); | 1396 display_info_list.push_back(third_info); |
1406 display_info_list.push_back(secondary_info); | 1397 display_info_list.push_back(secondary_info); |
1407 display_manager()->OnNativeDisplaysChanged(display_info_list); | 1398 display_manager()->OnNativeDisplaysChanged(display_info_list); |
1408 | 1399 |
1409 // Secondary seconary_id becomes the primary as it has smaller output index. | 1400 // Secondary seconary_id becomes the primary as it has smaller output index. |
1410 EXPECT_EQ(secondary_id, WindowTreeHostManager::GetPrimaryDisplayId()); | 1401 EXPECT_EQ(secondary_id, WindowTreeHostManager::GetPrimaryDisplayId()); |
1411 EXPECT_EQ(third_id, display_manager()->GetSecondaryDisplay().id()); | 1402 EXPECT_EQ(third_id, display_manager()->GetSecondaryDisplay().id()); |
1412 EXPECT_EQ("600x600", GetDisplayForId(third_id).size().ToString()); | 1403 EXPECT_EQ("600x600", GetDisplayForId(third_id).size().ToString()); |
1413 } | 1404 } |
1414 | 1405 |
1415 TEST_P(DisplayManagerTest, TestNativeDisplaysChangedNoInternal) { | 1406 TEST_F(DisplayManagerTest, TestNativeDisplaysChangedNoInternal) { |
1416 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); | 1407 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); |
1417 | 1408 |
1418 // Don't change the display info if all displays are disconnected. | 1409 // Don't change the display info if all displays are disconnected. |
1419 std::vector<display::ManagedDisplayInfo> display_info_list; | 1410 std::vector<display::ManagedDisplayInfo> display_info_list; |
1420 display_manager()->OnNativeDisplaysChanged(display_info_list); | 1411 display_manager()->OnNativeDisplaysChanged(display_info_list); |
1421 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); | 1412 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); |
1422 | 1413 |
1423 // Connect another display which will become primary. | 1414 // Connect another display which will become primary. |
1424 const display::ManagedDisplayInfo external_display_info = | 1415 const display::ManagedDisplayInfo external_display_info = |
1425 CreateDisplayInfo(10, gfx::Rect(1, 1, 100, 100)); | 1416 CreateDisplayInfo(10, gfx::Rect(1, 1, 100, 100)); |
1426 display_info_list.push_back(external_display_info); | 1417 display_info_list.push_back(external_display_info); |
1427 display_manager()->OnNativeDisplaysChanged(display_info_list); | 1418 display_manager()->OnNativeDisplaysChanged(display_info_list); |
1428 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); | 1419 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); |
1429 EXPECT_EQ("1,1 100x100", | 1420 EXPECT_EQ("1,1 100x100", |
1430 GetDisplayInfoForId(10).bounds_in_native().ToString()); | 1421 GetDisplayInfoForId(10).bounds_in_native().ToString()); |
1431 EXPECT_EQ("100x100", ash::Shell::GetPrimaryRootWindow() | 1422 EXPECT_EQ("100x100", ash::Shell::GetPrimaryRootWindow() |
1432 ->GetHost() | 1423 ->GetHost() |
1433 ->GetBoundsInPixels() | 1424 ->GetBoundsInPixels() |
1434 .size() | 1425 .size() |
1435 .ToString()); | 1426 .ToString()); |
1436 } | 1427 } |
1437 | 1428 |
1438 TEST_P(DisplayManagerTest, NativeDisplaysChangedAfterPrimaryChange) { | 1429 TEST_F(DisplayManagerTest, NativeDisplaysChangedAfterPrimaryChange) { |
1439 const int64_t internal_display_id = | 1430 const int64_t internal_display_id = |
1440 display::test::DisplayManagerTestApi(display_manager()) | 1431 display::test::DisplayManagerTestApi(display_manager()) |
1441 .SetFirstDisplayAsInternalDisplay(); | 1432 .SetFirstDisplayAsInternalDisplay(); |
1442 const display::ManagedDisplayInfo native_display_info = | 1433 const display::ManagedDisplayInfo native_display_info = |
1443 CreateDisplayInfo(internal_display_id, gfx::Rect(0, 0, 500, 500)); | 1434 CreateDisplayInfo(internal_display_id, gfx::Rect(0, 0, 500, 500)); |
1444 const display::ManagedDisplayInfo secondary_display_info = | 1435 const display::ManagedDisplayInfo secondary_display_info = |
1445 CreateDisplayInfo(10, gfx::Rect(1, 1, 100, 100)); | 1436 CreateDisplayInfo(10, gfx::Rect(1, 1, 100, 100)); |
1446 | 1437 |
1447 std::vector<display::ManagedDisplayInfo> display_info_list; | 1438 std::vector<display::ManagedDisplayInfo> display_info_list; |
1448 display_info_list.push_back(native_display_info); | 1439 display_info_list.push_back(native_display_info); |
(...skipping 11 matching lines...) Expand all Loading... |
1460 EXPECT_EQ("0,0 100x100", GetDisplayForId(10).bounds().ToString()); | 1451 EXPECT_EQ("0,0 100x100", GetDisplayForId(10).bounds().ToString()); |
1461 | 1452 |
1462 // OnNativeDisplaysChanged may change the display bounds. Here makes sure | 1453 // OnNativeDisplaysChanged may change the display bounds. Here makes sure |
1463 // nothing changed if the exactly same displays are specified. | 1454 // nothing changed if the exactly same displays are specified. |
1464 display_manager()->OnNativeDisplaysChanged(display_info_list); | 1455 display_manager()->OnNativeDisplaysChanged(display_info_list); |
1465 EXPECT_EQ("-500,0 500x500", | 1456 EXPECT_EQ("-500,0 500x500", |
1466 GetDisplayForId(internal_display_id).bounds().ToString()); | 1457 GetDisplayForId(internal_display_id).bounds().ToString()); |
1467 EXPECT_EQ("0,0 100x100", GetDisplayForId(10).bounds().ToString()); | 1458 EXPECT_EQ("0,0 100x100", GetDisplayForId(10).bounds().ToString()); |
1468 } | 1459 } |
1469 | 1460 |
1470 TEST_P(DisplayManagerTest, DontRememberBestResolution) { | 1461 TEST_F(DisplayManagerTest, DontRememberBestResolution) { |
1471 int display_id = 1000; | 1462 int display_id = 1000; |
1472 display::ManagedDisplayInfo native_display_info = | 1463 display::ManagedDisplayInfo native_display_info = |
1473 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1000, 500)); | 1464 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1000, 500)); |
1474 display::ManagedDisplayInfo::ManagedDisplayModeList display_modes; | 1465 display::ManagedDisplayInfo::ManagedDisplayModeList display_modes; |
1475 display_modes.push_back(make_scoped_refptr(new display::ManagedDisplayMode( | 1466 display_modes.push_back(make_scoped_refptr(new display::ManagedDisplayMode( |
1476 gfx::Size(1000, 500), 58.0f, false, true))); | 1467 gfx::Size(1000, 500), 58.0f, false, true))); |
1477 display_modes.push_back(make_scoped_refptr(new display::ManagedDisplayMode( | 1468 display_modes.push_back(make_scoped_refptr(new display::ManagedDisplayMode( |
1478 gfx::Size(800, 300), 59.0f, false, false))); | 1469 gfx::Size(800, 300), 59.0f, false, false))); |
1479 display_modes.push_back(make_scoped_refptr(new display::ManagedDisplayMode( | 1470 display_modes.push_back(make_scoped_refptr(new display::ManagedDisplayMode( |
1480 gfx::Size(400, 500), 60.0f, false, false))); | 1471 gfx::Size(400, 500), 60.0f, false, false))); |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1527 EXPECT_EQ(58.0f, mode->refresh_rate()); | 1518 EXPECT_EQ(58.0f, mode->refresh_rate()); |
1528 EXPECT_TRUE(mode->native()); | 1519 EXPECT_TRUE(mode->native()); |
1529 | 1520 |
1530 expected_mode = | 1521 expected_mode = |
1531 new display::ManagedDisplayMode(gfx::Size(1000, 500), 0.0f, false, false); | 1522 new display::ManagedDisplayMode(gfx::Size(1000, 500), 0.0f, false, false); |
1532 | 1523 |
1533 EXPECT_TRUE(expected_mode->IsEquivalent( | 1524 EXPECT_TRUE(expected_mode->IsEquivalent( |
1534 display_manager()->GetActiveModeForDisplayId(display_id))); | 1525 display_manager()->GetActiveModeForDisplayId(display_id))); |
1535 } | 1526 } |
1536 | 1527 |
1537 TEST_P(DisplayManagerTest, ResolutionFallback) { | 1528 TEST_F(DisplayManagerTest, ResolutionFallback) { |
1538 int display_id = 1000; | 1529 int display_id = 1000; |
1539 display::ManagedDisplayInfo native_display_info = | 1530 display::ManagedDisplayInfo native_display_info = |
1540 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1000, 500)); | 1531 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1000, 500)); |
1541 display::ManagedDisplayInfo::ManagedDisplayModeList display_modes; | 1532 display::ManagedDisplayInfo::ManagedDisplayModeList display_modes; |
1542 display_modes.push_back(make_scoped_refptr(new display::ManagedDisplayMode( | 1533 display_modes.push_back(make_scoped_refptr(new display::ManagedDisplayMode( |
1543 gfx::Size(1000, 500), 58.0f, false, true))); | 1534 gfx::Size(1000, 500), 58.0f, false, true))); |
1544 display_modes.push_back(make_scoped_refptr(new display::ManagedDisplayMode( | 1535 display_modes.push_back(make_scoped_refptr(new display::ManagedDisplayMode( |
1545 gfx::Size(800, 300), 59.0f, false, false))); | 1536 gfx::Size(800, 300), 59.0f, false, false))); |
1546 display_modes.push_back(make_scoped_refptr(new display::ManagedDisplayMode( | 1537 display_modes.push_back(make_scoped_refptr(new display::ManagedDisplayMode( |
1547 gfx::Size(400, 500), 60.0f, false, false))); | 1538 gfx::Size(400, 500), 60.0f, false, false))); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1584 | 1575 |
1585 scoped_refptr<display::ManagedDisplayMode> mode = | 1576 scoped_refptr<display::ManagedDisplayMode> mode = |
1586 display_manager()->GetSelectedModeForDisplayId(display_id); | 1577 display_manager()->GetSelectedModeForDisplayId(display_id); |
1587 EXPECT_TRUE(!!mode); | 1578 EXPECT_TRUE(!!mode); |
1588 EXPECT_EQ("1000x500", mode->size().ToString()); | 1579 EXPECT_EQ("1000x500", mode->size().ToString()); |
1589 EXPECT_EQ(58.0f, mode->refresh_rate()); | 1580 EXPECT_EQ(58.0f, mode->refresh_rate()); |
1590 EXPECT_TRUE(mode->native()); | 1581 EXPECT_TRUE(mode->native()); |
1591 } | 1582 } |
1592 } | 1583 } |
1593 | 1584 |
1594 TEST_P(DisplayManagerTest, Rotate) { | 1585 TEST_F(DisplayManagerTest, Rotate) { |
1595 UpdateDisplay("100x200/r,300x400/l"); | 1586 UpdateDisplay("100x200/r,300x400/l"); |
1596 EXPECT_EQ("1,1 100x200", GetDisplayInfoAt(0).bounds_in_native().ToString()); | 1587 EXPECT_EQ("1,1 100x200", GetDisplayInfoAt(0).bounds_in_native().ToString()); |
1597 EXPECT_EQ("200x100", GetDisplayInfoAt(0).size_in_pixel().ToString()); | 1588 EXPECT_EQ("200x100", GetDisplayInfoAt(0).size_in_pixel().ToString()); |
1598 | 1589 |
1599 EXPECT_EQ("1,201 300x400", GetDisplayInfoAt(1).bounds_in_native().ToString()); | 1590 EXPECT_EQ("1,201 300x400", GetDisplayInfoAt(1).bounds_in_native().ToString()); |
1600 EXPECT_EQ("400x300", GetDisplayInfoAt(1).size_in_pixel().ToString()); | 1591 EXPECT_EQ("400x300", GetDisplayInfoAt(1).size_in_pixel().ToString()); |
1601 reset(); | 1592 reset(); |
1602 UpdateDisplay("100x200/b,300x400"); | 1593 UpdateDisplay("100x200/b,300x400"); |
1603 EXPECT_EQ("2 0 0", GetCountSummary()); | 1594 EXPECT_EQ("2 0 0", GetCountSummary()); |
1604 reset(); | 1595 reset(); |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1669 internal_display_id, display::Display::ROTATE_180, | 1660 internal_display_id, display::Display::ROTATE_180, |
1670 display::Display::ROTATION_SOURCE_ACTIVE); | 1661 display::Display::ROTATION_SOURCE_ACTIVE); |
1671 const display::ManagedDisplayInfo& post_rotation_info = | 1662 const display::ManagedDisplayInfo& post_rotation_info = |
1672 display::test::DisplayManagerTestApi(display_manager()) | 1663 display::test::DisplayManagerTestApi(display_manager()) |
1673 .GetInternalManagedDisplayInfo(internal_display_id); | 1664 .GetInternalManagedDisplayInfo(internal_display_id); |
1674 EXPECT_NE(info.GetActiveRotation(), post_rotation_info.GetActiveRotation()); | 1665 EXPECT_NE(info.GetActiveRotation(), post_rotation_info.GetActiveRotation()); |
1675 EXPECT_EQ(display::Display::ROTATE_180, | 1666 EXPECT_EQ(display::Display::ROTATE_180, |
1676 post_rotation_info.GetActiveRotation()); | 1667 post_rotation_info.GetActiveRotation()); |
1677 } | 1668 } |
1678 | 1669 |
1679 TEST_P(DisplayManagerTest, UIScale) { | 1670 TEST_F(DisplayManagerTest, UIScale) { |
1680 display::test::ScopedDisable125DSFForUIScaling disable; | 1671 display::test::ScopedDisable125DSFForUIScaling disable; |
1681 | 1672 |
1682 UpdateDisplay("1280x800"); | 1673 UpdateDisplay("1280x800"); |
1683 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); | 1674 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); |
1684 display::test::DisplayManagerTestApi(display_manager()) | 1675 display::test::DisplayManagerTestApi(display_manager()) |
1685 .SetDisplayUIScale(display_id, 1.125f); | 1676 .SetDisplayUIScale(display_id, 1.125f); |
1686 EXPECT_EQ(1.0, GetDisplayInfoAt(0).configured_ui_scale()); | 1677 EXPECT_EQ(1.0, GetDisplayInfoAt(0).configured_ui_scale()); |
1687 display::test::DisplayManagerTestApi(display_manager()) | 1678 display::test::DisplayManagerTestApi(display_manager()) |
1688 .SetDisplayUIScale(display_id, 0.8f); | 1679 .SetDisplayUIScale(display_id, 0.8f); |
1689 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); | 1680 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).configured_ui_scale()); |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1795 UpdateDisplay("1280x850*1.25"); | 1786 UpdateDisplay("1280x850*1.25"); |
1796 display::test::DisplayManagerTestApi(display_manager()) | 1787 display::test::DisplayManagerTestApi(display_manager()) |
1797 .SetDisplayUIScale(display_id, 1.25f); | 1788 .SetDisplayUIScale(display_id, 1.25f); |
1798 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).configured_ui_scale()); | 1789 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).configured_ui_scale()); |
1799 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); | 1790 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); |
1800 display = display::Screen::GetScreen()->GetPrimaryDisplay(); | 1791 display = display::Screen::GetScreen()->GetPrimaryDisplay(); |
1801 EXPECT_EQ(1.0f, display.device_scale_factor()); | 1792 EXPECT_EQ(1.0f, display.device_scale_factor()); |
1802 EXPECT_EQ("1280x850", display.bounds().size().ToString()); | 1793 EXPECT_EQ("1280x850", display.bounds().size().ToString()); |
1803 } | 1794 } |
1804 | 1795 |
1805 TEST_P(DisplayManagerTest, UIScaleWithDisplayMode) { | 1796 TEST_F(DisplayManagerTest, UIScaleWithDisplayMode) { |
1806 int display_id = 1000; | 1797 int display_id = 1000; |
1807 | 1798 |
1808 // Setup the display modes with UI-scale. | 1799 // Setup the display modes with UI-scale. |
1809 display::ManagedDisplayInfo native_display_info = | 1800 display::ManagedDisplayInfo native_display_info = |
1810 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1280, 800)); | 1801 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1280, 800)); |
1811 const scoped_refptr<display::ManagedDisplayMode>& base_mode( | 1802 const scoped_refptr<display::ManagedDisplayMode>& base_mode( |
1812 new display::ManagedDisplayMode(gfx::Size(1280, 800), 60.0f, false, | 1803 new display::ManagedDisplayMode(gfx::Size(1280, 800), 60.0f, false, |
1813 false)); | 1804 false)); |
1814 display::ManagedDisplayInfo::ManagedDisplayModeList mode_list = | 1805 display::ManagedDisplayInfo::ManagedDisplayModeList mode_list = |
1815 CreateInternalManagedDisplayModeList(base_mode); | 1806 CreateInternalManagedDisplayModeList(base_mode); |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1887 expected_mode->size(), expected_mode->refresh_rate(), | 1878 expected_mode->size(), expected_mode->refresh_rate(), |
1888 expected_mode->is_interlaced(), expected_mode->native(), | 1879 expected_mode->is_interlaced(), expected_mode->native(), |
1889 0.5f /* ui_scale */, expected_mode->device_scale_factor()); | 1880 0.5f /* ui_scale */, expected_mode->device_scale_factor()); |
1890 | 1881 |
1891 EXPECT_TRUE(expected_mode->IsEquivalent( | 1882 EXPECT_TRUE(expected_mode->IsEquivalent( |
1892 display_manager()->GetActiveModeForDisplayId(display_id))); | 1883 display_manager()->GetActiveModeForDisplayId(display_id))); |
1893 } | 1884 } |
1894 | 1885 |
1895 // Tests that ResetInternalDisplayZoom() resets to the default 0.8f UI scale | 1886 // Tests that ResetInternalDisplayZoom() resets to the default 0.8f UI scale |
1896 // defined for the 1.25x displays. | 1887 // defined for the 1.25x displays. |
1897 TEST_P(DisplayManagerTest, ResetInternalDisplayZoomFor1_25x) { | 1888 TEST_F(DisplayManagerTest, ResetInternalDisplayZoomFor1_25x) { |
1898 // Setup the display modes with UI-scale. | 1889 // Setup the display modes with UI-scale. |
1899 const scoped_refptr<display::ManagedDisplayMode> base_mode( | 1890 const scoped_refptr<display::ManagedDisplayMode> base_mode( |
1900 new display::ManagedDisplayMode(gfx::Size(1920, 1080), 60.0f, | 1891 new display::ManagedDisplayMode(gfx::Size(1920, 1080), 60.0f, |
1901 false /* is_interlaced */, | 1892 false /* is_interlaced */, |
1902 true /* native */, 1.0f /* ui_scale */, | 1893 true /* native */, 1.0f /* ui_scale */, |
1903 1.25f /* device_scale_factor */)); | 1894 1.25f /* device_scale_factor */)); |
1904 display::ManagedDisplayInfo::ManagedDisplayModeList mode_list = | 1895 display::ManagedDisplayInfo::ManagedDisplayModeList mode_list = |
1905 CreateInternalManagedDisplayModeList(base_mode); | 1896 CreateInternalManagedDisplayModeList(base_mode); |
1906 | 1897 |
1907 const int display_id = 1000; | 1898 const int display_id = 1000; |
(...skipping 22 matching lines...) Expand all Loading... |
1930 | 1921 |
1931 // Reset the internal display zoom and expect the UI scale to go to the | 1922 // Reset the internal display zoom and expect the UI scale to go to the |
1932 // default 0.8f. | 1923 // default 0.8f. |
1933 display_manager()->ResetInternalDisplayZoom(); | 1924 display_manager()->ResetInternalDisplayZoom(); |
1934 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); | 1925 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); |
1935 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); | 1926 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); |
1936 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale()); | 1927 EXPECT_EQ(0.8f, GetDisplayInfoAt(0).configured_ui_scale()); |
1937 EXPECT_EQ("1536x864", GetDisplayForId(display_id).size().ToString()); | 1928 EXPECT_EQ("1536x864", GetDisplayForId(display_id).size().ToString()); |
1938 } | 1929 } |
1939 | 1930 |
1940 TEST_P(DisplayManagerTest, Use125DSFForUIScaling) { | 1931 TEST_F(DisplayManagerTest, Use125DSFForUIScaling) { |
1941 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); | 1932 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); |
1942 | 1933 |
1943 display::test::ScopedSetInternalDisplayId set_internal(display_manager(), | 1934 display::test::ScopedSetInternalDisplayId set_internal(display_manager(), |
1944 display_id); | 1935 display_id); |
1945 UpdateDisplay("1920x1080*1.25"); | 1936 UpdateDisplay("1920x1080*1.25"); |
1946 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); | 1937 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); |
1947 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); | 1938 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); |
1948 | 1939 |
1949 display::test::DisplayManagerTestApi(display_manager()) | 1940 display::test::DisplayManagerTestApi(display_manager()) |
1950 .SetDisplayUIScale(display_id, 0.8f); | 1941 .SetDisplayUIScale(display_id, 0.8f); |
1951 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); | 1942 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); |
1952 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); | 1943 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); |
1953 EXPECT_EQ("1536x864", GetDisplayForId(display_id).size().ToString()); | 1944 EXPECT_EQ("1536x864", GetDisplayForId(display_id).size().ToString()); |
1954 | 1945 |
1955 display::test::DisplayManagerTestApi(display_manager()) | 1946 display::test::DisplayManagerTestApi(display_manager()) |
1956 .SetDisplayUIScale(display_id, 0.5f); | 1947 .SetDisplayUIScale(display_id, 0.5f); |
1957 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); | 1948 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); |
1958 EXPECT_EQ(0.5f, GetDisplayInfoAt(0).GetEffectiveUIScale()); | 1949 EXPECT_EQ(0.5f, GetDisplayInfoAt(0).GetEffectiveUIScale()); |
1959 EXPECT_EQ("960x540", GetDisplayForId(display_id).size().ToString()); | 1950 EXPECT_EQ("960x540", GetDisplayForId(display_id).size().ToString()); |
1960 | 1951 |
1961 display::test::DisplayManagerTestApi(display_manager()) | 1952 display::test::DisplayManagerTestApi(display_manager()) |
1962 .SetDisplayUIScale(display_id, 1.25f); | 1953 .SetDisplayUIScale(display_id, 1.25f); |
1963 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); | 1954 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); |
1964 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).GetEffectiveUIScale()); | 1955 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).GetEffectiveUIScale()); |
1965 EXPECT_EQ("2400x1350", GetDisplayForId(display_id).size().ToString()); | 1956 EXPECT_EQ("2400x1350", GetDisplayForId(display_id).size().ToString()); |
1966 } | 1957 } |
1967 | 1958 |
1968 TEST_P(DisplayManagerTest, FHD125DefaultsTo08UIScaling) { | 1959 TEST_F(DisplayManagerTest, FHD125DefaultsTo08UIScaling) { |
1969 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); | 1960 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); |
1970 | 1961 |
1971 display_id++; | 1962 display_id++; |
1972 display::test::ScopedSetInternalDisplayId set_internal(display_manager(), | 1963 display::test::ScopedSetInternalDisplayId set_internal(display_manager(), |
1973 display_id); | 1964 display_id); |
1974 | 1965 |
1975 // Setup the display modes with UI-scale. | 1966 // Setup the display modes with UI-scale. |
1976 display::ManagedDisplayInfo native_display_info = | 1967 display::ManagedDisplayInfo native_display_info = |
1977 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1920, 1080)); | 1968 CreateDisplayInfo(display_id, gfx::Rect(0, 0, 1920, 1080)); |
1978 native_display_info.set_device_scale_factor(1.25); | 1969 native_display_info.set_device_scale_factor(1.25); |
1979 | 1970 |
1980 const scoped_refptr<display::ManagedDisplayMode>& base_mode( | 1971 const scoped_refptr<display::ManagedDisplayMode>& base_mode( |
1981 new display::ManagedDisplayMode(gfx::Size(1920, 1080), 60.0f, false, | 1972 new display::ManagedDisplayMode(gfx::Size(1920, 1080), 60.0f, false, |
1982 false)); | 1973 false)); |
1983 display::ManagedDisplayInfo::ManagedDisplayModeList mode_list = | 1974 display::ManagedDisplayInfo::ManagedDisplayModeList mode_list = |
1984 CreateInternalManagedDisplayModeList(base_mode); | 1975 CreateInternalManagedDisplayModeList(base_mode); |
1985 native_display_info.SetManagedDisplayModes(mode_list); | 1976 native_display_info.SetManagedDisplayModes(mode_list); |
1986 | 1977 |
1987 std::vector<display::ManagedDisplayInfo> display_info_list; | 1978 std::vector<display::ManagedDisplayInfo> display_info_list; |
1988 display_info_list.push_back(native_display_info); | 1979 display_info_list.push_back(native_display_info); |
1989 | 1980 |
1990 display_manager()->OnNativeDisplaysChanged(display_info_list); | 1981 display_manager()->OnNativeDisplaysChanged(display_info_list); |
1991 | 1982 |
1992 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); | 1983 EXPECT_EQ(1.25f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); |
1993 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); | 1984 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); |
1994 } | 1985 } |
1995 | 1986 |
1996 // Don't default to 1.25 DSF if the user already has a prefrence stored for | 1987 // Don't default to 1.25 DSF if the user already has a prefrence stored for |
1997 // the internal display. | 1988 // the internal display. |
1998 TEST_P(DisplayManagerTest, FHD125DefaultsTo08UIScalingNoOverride) { | 1989 TEST_F(DisplayManagerTest, FHD125DefaultsTo08UIScalingNoOverride) { |
1999 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); | 1990 int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); |
2000 | 1991 |
2001 display_id++; | 1992 display_id++; |
2002 display::test::ScopedSetInternalDisplayId set_internal(display_manager(), | 1993 display::test::ScopedSetInternalDisplayId set_internal(display_manager(), |
2003 display_id); | 1994 display_id); |
2004 const gfx::Insets dummy_overscan_insets; | 1995 const gfx::Insets dummy_overscan_insets; |
2005 display_manager()->RegisterDisplayProperty( | 1996 display_manager()->RegisterDisplayProperty( |
2006 display_id, display::Display::ROTATE_0, 1.0f, &dummy_overscan_insets, | 1997 display_id, display::Display::ROTATE_0, 1.0f, &dummy_overscan_insets, |
2007 gfx::Size(), 1.0f, display::ColorCalibrationProfile(), nullptr); | 1998 gfx::Size(), 1.0f, display::ColorCalibrationProfile(), nullptr); |
2008 | 1999 |
(...skipping 11 matching lines...) Expand all Loading... |
2020 | 2011 |
2021 std::vector<display::ManagedDisplayInfo> display_info_list; | 2012 std::vector<display::ManagedDisplayInfo> display_info_list; |
2022 display_info_list.push_back(native_display_info); | 2013 display_info_list.push_back(native_display_info); |
2023 | 2014 |
2024 display_manager()->OnNativeDisplaysChanged(display_info_list); | 2015 display_manager()->OnNativeDisplaysChanged(display_info_list); |
2025 | 2016 |
2026 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); | 2017 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveDeviceScaleFactor()); |
2027 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); | 2018 EXPECT_EQ(1.0f, GetDisplayInfoAt(0).GetEffectiveUIScale()); |
2028 } | 2019 } |
2029 | 2020 |
2030 TEST_P(DisplayManagerTest, ResolutionChangeInUnifiedMode) { | 2021 TEST_F(DisplayManagerTest, ResolutionChangeInUnifiedMode) { |
2031 // Don't check root window destruction in unified mode. | 2022 // Don't check root window destruction in unified mode. |
2032 Shell::GetPrimaryRootWindow()->RemoveObserver(this); | 2023 Shell::GetPrimaryRootWindow()->RemoveObserver(this); |
2033 | 2024 |
2034 display_manager()->SetUnifiedDesktopEnabled(true); | 2025 display_manager()->SetUnifiedDesktopEnabled(true); |
2035 | 2026 |
2036 UpdateDisplay("200x200, 400x400"); | 2027 UpdateDisplay("200x200, 400x400"); |
2037 | 2028 |
2038 int64_t unified_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); | 2029 int64_t unified_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); |
2039 display::ManagedDisplayInfo info = | 2030 display::ManagedDisplayInfo info = |
2040 display_manager()->GetDisplayInfo(unified_id); | 2031 display_manager()->GetDisplayInfo(unified_id); |
(...skipping 24 matching lines...) Expand all Loading... |
2065 UpdateDisplay("600x600, 200x200"); | 2056 UpdateDisplay("600x600, 200x200"); |
2066 EXPECT_EQ( | 2057 EXPECT_EQ( |
2067 "1200x600", | 2058 "1200x600", |
2068 display::Screen::GetScreen()->GetPrimaryDisplay().size().ToString()); | 2059 display::Screen::GetScreen()->GetPrimaryDisplay().size().ToString()); |
2069 active_mode = display_manager()->GetActiveModeForDisplayId(unified_id); | 2060 active_mode = display_manager()->GetActiveModeForDisplayId(unified_id); |
2070 EXPECT_EQ(1.0f, active_mode->ui_scale()); | 2061 EXPECT_EQ(1.0f, active_mode->ui_scale()); |
2071 EXPECT_TRUE(active_mode->native()); | 2062 EXPECT_TRUE(active_mode->native()); |
2072 EXPECT_EQ("1200x600", active_mode->size().ToString()); | 2063 EXPECT_EQ("1200x600", active_mode->size().ToString()); |
2073 } | 2064 } |
2074 | 2065 |
2075 TEST_P(DisplayManagerTest, UpdateMouseCursorAfterRotateZoom) { | 2066 TEST_F(DisplayManagerTest, UpdateMouseCursorAfterRotateZoom) { |
2076 // Make sure just rotating will not change native location. | 2067 // Make sure just rotating will not change native location. |
2077 UpdateDisplay("300x200,200x150"); | 2068 UpdateDisplay("300x200,200x150"); |
2078 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); | 2069 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); |
2079 aura::Env* env = aura::Env::GetInstance(); | 2070 aura::Env* env = aura::Env::GetInstance(); |
2080 | 2071 |
2081 ui::test::EventGenerator generator1(root_windows[0]); | 2072 ui::test::EventGenerator generator1(root_windows[0]); |
2082 ui::test::EventGenerator generator2(root_windows[1]); | 2073 ui::test::EventGenerator generator2(root_windows[1]); |
2083 | 2074 |
2084 // Test on 1st display. | 2075 // Test on 1st display. |
2085 generator1.MoveMouseToInHost(150, 50); | 2076 generator1.MoveMouseToInHost(150, 50); |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2146 return changed; | 2137 return changed; |
2147 } | 2138 } |
2148 | 2139 |
2149 private: | 2140 private: |
2150 test::MirrorWindowTestApi test_api; | 2141 test::MirrorWindowTestApi test_api; |
2151 bool changed_; | 2142 bool changed_; |
2152 | 2143 |
2153 DISALLOW_COPY_AND_ASSIGN(TestDisplayObserver); | 2144 DISALLOW_COPY_AND_ASSIGN(TestDisplayObserver); |
2154 }; | 2145 }; |
2155 | 2146 |
2156 TEST_P(DisplayManagerTest, SoftwareMirroring) { | 2147 TEST_F(DisplayManagerTest, SoftwareMirroring) { |
2157 UpdateDisplay("300x400,400x500"); | 2148 UpdateDisplay("300x400,400x500"); |
2158 | 2149 |
2159 test::MirrorWindowTestApi test_api; | 2150 test::MirrorWindowTestApi test_api; |
2160 EXPECT_EQ(nullptr, test_api.GetHost()); | 2151 EXPECT_EQ(nullptr, test_api.GetHost()); |
2161 | 2152 |
2162 TestDisplayObserver display_observer; | 2153 TestDisplayObserver display_observer; |
2163 display::Screen::GetScreen()->AddObserver(&display_observer); | 2154 display::Screen::GetScreen()->AddObserver(&display_observer); |
2164 | 2155 |
2165 display_manager()->SetMultiDisplayMode(display::DisplayManager::MIRRORING); | 2156 display_manager()->SetMultiDisplayMode(display::DisplayManager::MIRRORING); |
2166 display_manager()->UpdateDisplays(); | 2157 display_manager()->UpdateDisplays(); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2209 | 2200 |
2210 // Overscan insets are ignored. | 2201 // Overscan insets are ignored. |
2211 UpdateDisplay("400x600/o,600x800/o"); | 2202 UpdateDisplay("400x600/o,600x800/o"); |
2212 EXPECT_FALSE(display_observer.changed_and_reset()); | 2203 EXPECT_FALSE(display_observer.changed_and_reset()); |
2213 EXPECT_EQ("400x600", | 2204 EXPECT_EQ("400x600", |
2214 test_api.GetHost()->window()->bounds().size().ToString()); | 2205 test_api.GetHost()->window()->bounds().size().ToString()); |
2215 | 2206 |
2216 display::Screen::GetScreen()->RemoveObserver(&display_observer); | 2207 display::Screen::GetScreen()->RemoveObserver(&display_observer); |
2217 } | 2208 } |
2218 | 2209 |
2219 TEST_P(DisplayManagerTest, RotateInSoftwareMirroring) { | 2210 TEST_F(DisplayManagerTest, RotateInSoftwareMirroring) { |
2220 UpdateDisplay("600x400,500x300"); | 2211 UpdateDisplay("600x400,500x300"); |
2221 display_manager()->SetMirrorMode(true); | 2212 display_manager()->SetMirrorMode(true); |
2222 | 2213 |
2223 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); | 2214 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); |
2224 int64_t primary_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); | 2215 int64_t primary_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); |
2225 display_manager()->SetDisplayRotation( | 2216 display_manager()->SetDisplayRotation( |
2226 primary_id, display::Display::ROTATE_180, | 2217 primary_id, display::Display::ROTATE_180, |
2227 display::Display::ROTATION_SOURCE_ACTIVE); | 2218 display::Display::ROTATION_SOURCE_ACTIVE); |
2228 display_manager()->SetMirrorMode(false); | 2219 display_manager()->SetMirrorMode(false); |
2229 } | 2220 } |
2230 | 2221 |
2231 TEST_P(DisplayManagerTest, SingleDisplayToSoftwareMirroring) { | 2222 TEST_F(DisplayManagerTest, SingleDisplayToSoftwareMirroring) { |
2232 UpdateDisplay("600x400"); | 2223 UpdateDisplay("600x400"); |
2233 | 2224 |
2234 display_manager()->SetMultiDisplayMode(display::DisplayManager::MIRRORING); | 2225 display_manager()->SetMultiDisplayMode(display::DisplayManager::MIRRORING); |
2235 UpdateDisplay("600x400,600x400"); | 2226 UpdateDisplay("600x400,600x400"); |
2236 | 2227 |
2237 EXPECT_TRUE(display_manager()->IsInMirrorMode()); | 2228 EXPECT_TRUE(display_manager()->IsInMirrorMode()); |
2238 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); | 2229 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); |
2239 WindowTreeHostManager* window_tree_host_manager = | 2230 WindowTreeHostManager* window_tree_host_manager = |
2240 ash::Shell::GetInstance()->window_tree_host_manager(); | 2231 ash::Shell::GetInstance()->window_tree_host_manager(); |
2241 EXPECT_TRUE( | 2232 EXPECT_TRUE( |
2242 window_tree_host_manager->mirror_window_controller()->GetWindow()); | 2233 window_tree_host_manager->mirror_window_controller()->GetWindow()); |
2243 | 2234 |
2244 UpdateDisplay("600x400"); | 2235 UpdateDisplay("600x400"); |
2245 EXPECT_FALSE(display_manager()->IsInMirrorMode()); | 2236 EXPECT_FALSE(display_manager()->IsInMirrorMode()); |
2246 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); | 2237 EXPECT_EQ(1U, display_manager()->GetNumDisplays()); |
2247 EXPECT_FALSE( | 2238 EXPECT_FALSE( |
2248 window_tree_host_manager->mirror_window_controller()->GetWindow()); | 2239 window_tree_host_manager->mirror_window_controller()->GetWindow()); |
2249 } | 2240 } |
2250 | 2241 |
2251 // Make sure this does not cause any crashes. See http://crbug.com/412910 | 2242 // Make sure this does not cause any crashes. See http://crbug.com/412910 |
2252 TEST_P(DisplayManagerTest, SoftwareMirroringWithCompositingCursor) { | 2243 TEST_F(DisplayManagerTest, SoftwareMirroringWithCompositingCursor) { |
2253 UpdateDisplay("300x400,400x500"); | 2244 UpdateDisplay("300x400,400x500"); |
2254 | 2245 |
2255 test::MirrorWindowTestApi test_api; | 2246 test::MirrorWindowTestApi test_api; |
2256 EXPECT_EQ(nullptr, test_api.GetHost()); | 2247 EXPECT_EQ(nullptr, test_api.GetHost()); |
2257 | 2248 |
2258 display::ManagedDisplayInfo secondary_info = | 2249 display::ManagedDisplayInfo secondary_info = |
2259 display_manager()->GetDisplayInfo( | 2250 display_manager()->GetDisplayInfo( |
2260 display_manager()->GetSecondaryDisplay().id()); | 2251 display_manager()->GetSecondaryDisplay().id()); |
2261 | 2252 |
2262 display_manager()->SetSoftwareMirroring(true); | 2253 display_manager()->SetSoftwareMirroring(true); |
(...skipping 11 matching lines...) Expand all Loading... |
2274 std::vector<display::ManagedDisplayInfo> new_info_list; | 2265 std::vector<display::ManagedDisplayInfo> new_info_list; |
2275 new_info_list.push_back(secondary_info); | 2266 new_info_list.push_back(secondary_info); |
2276 display_manager()->OnNativeDisplaysChanged(new_info_list); | 2267 display_manager()->OnNativeDisplaysChanged(new_info_list); |
2277 | 2268 |
2278 root_windows = Shell::GetAllRootWindows(); | 2269 root_windows = Shell::GetAllRootWindows(); |
2279 EXPECT_TRUE(root_windows[0]->Contains(test_api.GetCursorWindow())); | 2270 EXPECT_TRUE(root_windows[0]->Contains(test_api.GetCursorWindow())); |
2280 | 2271 |
2281 Shell::GetInstance()->SetCursorCompositingEnabled(false); | 2272 Shell::GetInstance()->SetCursorCompositingEnabled(false); |
2282 } | 2273 } |
2283 | 2274 |
2284 TEST_P(DisplayManagerTest, MirroredLayout) { | 2275 TEST_F(DisplayManagerTest, MirroredLayout) { |
2285 UpdateDisplay("500x500,400x400"); | 2276 UpdateDisplay("500x500,400x400"); |
2286 EXPECT_FALSE(display_manager()->GetCurrentDisplayLayout().mirrored); | 2277 EXPECT_FALSE(display_manager()->GetCurrentDisplayLayout().mirrored); |
2287 EXPECT_EQ(2, display::Screen::GetScreen()->GetNumDisplays()); | 2278 EXPECT_EQ(2, display::Screen::GetScreen()->GetNumDisplays()); |
2288 EXPECT_EQ(2U, display_manager()->num_connected_displays()); | 2279 EXPECT_EQ(2U, display_manager()->num_connected_displays()); |
2289 | 2280 |
2290 UpdateDisplay("1+0-500x500,1+0-500x500"); | 2281 UpdateDisplay("1+0-500x500,1+0-500x500"); |
2291 EXPECT_TRUE(display_manager()->GetCurrentDisplayLayout().mirrored); | 2282 EXPECT_TRUE(display_manager()->GetCurrentDisplayLayout().mirrored); |
2292 EXPECT_EQ(1, display::Screen::GetScreen()->GetNumDisplays()); | 2283 EXPECT_EQ(1, display::Screen::GetScreen()->GetNumDisplays()); |
2293 EXPECT_EQ(2U, display_manager()->num_connected_displays()); | 2284 EXPECT_EQ(2U, display_manager()->num_connected_displays()); |
2294 | 2285 |
2295 UpdateDisplay("500x500,500x500"); | 2286 UpdateDisplay("500x500,500x500"); |
2296 EXPECT_FALSE(display_manager()->GetCurrentDisplayLayout().mirrored); | 2287 EXPECT_FALSE(display_manager()->GetCurrentDisplayLayout().mirrored); |
2297 EXPECT_EQ(2, display::Screen::GetScreen()->GetNumDisplays()); | 2288 EXPECT_EQ(2, display::Screen::GetScreen()->GetNumDisplays()); |
2298 EXPECT_EQ(2U, display_manager()->num_connected_displays()); | 2289 EXPECT_EQ(2U, display_manager()->num_connected_displays()); |
2299 } | 2290 } |
2300 | 2291 |
2301 TEST_P(DisplayManagerTest, InvertLayout) { | 2292 TEST_F(DisplayManagerTest, InvertLayout) { |
2302 EXPECT_EQ("left, 0", | 2293 EXPECT_EQ("left, 0", |
2303 display::DisplayPlacement(display::DisplayPlacement::RIGHT, 0) | 2294 display::DisplayPlacement(display::DisplayPlacement::RIGHT, 0) |
2304 .Swap() | 2295 .Swap() |
2305 .ToString()); | 2296 .ToString()); |
2306 EXPECT_EQ("left, -100", | 2297 EXPECT_EQ("left, -100", |
2307 display::DisplayPlacement(display::DisplayPlacement::RIGHT, 100) | 2298 display::DisplayPlacement(display::DisplayPlacement::RIGHT, 100) |
2308 .Swap() | 2299 .Swap() |
2309 .ToString()); | 2300 .ToString()); |
2310 EXPECT_EQ("left, 50", | 2301 EXPECT_EQ("left, 50", |
2311 display::DisplayPlacement(display::DisplayPlacement::RIGHT, -50) | 2302 display::DisplayPlacement(display::DisplayPlacement::RIGHT, -50) |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2345 EXPECT_EQ("top, -70", | 2336 EXPECT_EQ("top, -70", |
2346 display::DisplayPlacement(display::DisplayPlacement::BOTTOM, 70) | 2337 display::DisplayPlacement(display::DisplayPlacement::BOTTOM, 70) |
2347 .Swap() | 2338 .Swap() |
2348 .ToString()); | 2339 .ToString()); |
2349 EXPECT_EQ("top, 80", | 2340 EXPECT_EQ("top, 80", |
2350 display::DisplayPlacement(display::DisplayPlacement::BOTTOM, -80) | 2341 display::DisplayPlacement(display::DisplayPlacement::BOTTOM, -80) |
2351 .Swap() | 2342 .Swap() |
2352 .ToString()); | 2343 .ToString()); |
2353 } | 2344 } |
2354 | 2345 |
2355 TEST_P(DisplayManagerTest, NotifyPrimaryChange) { | 2346 TEST_F(DisplayManagerTest, NotifyPrimaryChange) { |
2356 UpdateDisplay("500x500,500x500"); | 2347 UpdateDisplay("500x500,500x500"); |
2357 SwapPrimaryDisplay(); | 2348 SwapPrimaryDisplay(); |
2358 reset(); | 2349 reset(); |
2359 UpdateDisplay("500x500"); | 2350 UpdateDisplay("500x500"); |
2360 EXPECT_FALSE(changed_metrics() & | 2351 EXPECT_FALSE(changed_metrics() & |
2361 display::DisplayObserver::DISPLAY_METRIC_BOUNDS); | 2352 display::DisplayObserver::DISPLAY_METRIC_BOUNDS); |
2362 EXPECT_FALSE(changed_metrics() & | 2353 EXPECT_FALSE(changed_metrics() & |
2363 display::DisplayObserver::DISPLAY_METRIC_WORK_AREA); | 2354 display::DisplayObserver::DISPLAY_METRIC_WORK_AREA); |
2364 EXPECT_TRUE(changed_metrics() & | 2355 EXPECT_TRUE(changed_metrics() & |
2365 display::DisplayObserver::DISPLAY_METRIC_PRIMARY); | 2356 display::DisplayObserver::DISPLAY_METRIC_PRIMARY); |
2366 | 2357 |
2367 UpdateDisplay("500x500,500x500"); | 2358 UpdateDisplay("500x500,500x500"); |
2368 SwapPrimaryDisplay(); | 2359 SwapPrimaryDisplay(); |
2369 UpdateDisplay("500x400"); | 2360 UpdateDisplay("500x400"); |
2370 EXPECT_TRUE(changed_metrics() & | 2361 EXPECT_TRUE(changed_metrics() & |
2371 display::DisplayObserver::DISPLAY_METRIC_BOUNDS); | 2362 display::DisplayObserver::DISPLAY_METRIC_BOUNDS); |
2372 EXPECT_TRUE(changed_metrics() & | 2363 EXPECT_TRUE(changed_metrics() & |
2373 display::DisplayObserver::DISPLAY_METRIC_WORK_AREA); | 2364 display::DisplayObserver::DISPLAY_METRIC_WORK_AREA); |
2374 EXPECT_TRUE(changed_metrics() & | 2365 EXPECT_TRUE(changed_metrics() & |
2375 display::DisplayObserver::DISPLAY_METRIC_PRIMARY); | 2366 display::DisplayObserver::DISPLAY_METRIC_PRIMARY); |
2376 } | 2367 } |
2377 | 2368 |
2378 TEST_P(DisplayManagerTest, NotifyPrimaryChangeUndock) { | 2369 TEST_F(DisplayManagerTest, NotifyPrimaryChangeUndock) { |
2379 // Assume the default display is an external display, and | 2370 // Assume the default display is an external display, and |
2380 // emulates undocking by switching to another display. | 2371 // emulates undocking by switching to another display. |
2381 display::ManagedDisplayInfo another_display_info = | 2372 display::ManagedDisplayInfo another_display_info = |
2382 CreateDisplayInfo(1, gfx::Rect(0, 0, 1280, 800)); | 2373 CreateDisplayInfo(1, gfx::Rect(0, 0, 1280, 800)); |
2383 std::vector<display::ManagedDisplayInfo> info_list; | 2374 std::vector<display::ManagedDisplayInfo> info_list; |
2384 info_list.push_back(another_display_info); | 2375 info_list.push_back(another_display_info); |
2385 reset(); | 2376 reset(); |
2386 display_manager()->OnNativeDisplaysChanged(info_list); | 2377 display_manager()->OnNativeDisplaysChanged(info_list); |
2387 EXPECT_TRUE(changed_metrics() & | 2378 EXPECT_TRUE(changed_metrics() & |
2388 display::DisplayObserver::DISPLAY_METRIC_BOUNDS); | 2379 display::DisplayObserver::DISPLAY_METRIC_BOUNDS); |
2389 EXPECT_TRUE(changed_metrics() & | 2380 EXPECT_TRUE(changed_metrics() & |
2390 display::DisplayObserver::DISPLAY_METRIC_WORK_AREA); | 2381 display::DisplayObserver::DISPLAY_METRIC_WORK_AREA); |
2391 EXPECT_TRUE(changed_metrics() & | 2382 EXPECT_TRUE(changed_metrics() & |
2392 display::DisplayObserver::DISPLAY_METRIC_PRIMARY); | 2383 display::DisplayObserver::DISPLAY_METRIC_PRIMARY); |
2393 } | 2384 } |
2394 | 2385 |
2395 TEST_P(DisplayManagerTest, UpdateDisplayWithHostOrigin) { | 2386 TEST_F(DisplayManagerTest, UpdateDisplayWithHostOrigin) { |
2396 UpdateDisplay("100x200,300x400"); | 2387 UpdateDisplay("100x200,300x400"); |
2397 ASSERT_EQ(2, display::Screen::GetScreen()->GetNumDisplays()); | 2388 ASSERT_EQ(2, display::Screen::GetScreen()->GetNumDisplays()); |
2398 aura::Window::Windows root_windows = | 2389 aura::Window::Windows root_windows = |
2399 Shell::GetInstance()->GetAllRootWindows(); | 2390 Shell::GetInstance()->GetAllRootWindows(); |
2400 ASSERT_EQ(2U, root_windows.size()); | 2391 ASSERT_EQ(2U, root_windows.size()); |
2401 aura::WindowTreeHost* host0 = root_windows[0]->GetHost(); | 2392 aura::WindowTreeHost* host0 = root_windows[0]->GetHost(); |
2402 aura::WindowTreeHost* host1 = root_windows[1]->GetHost(); | 2393 aura::WindowTreeHost* host1 = root_windows[1]->GetHost(); |
2403 | 2394 |
2404 EXPECT_EQ("1,1", host0->GetBoundsInPixels().origin().ToString()); | 2395 EXPECT_EQ("1,1", host0->GetBoundsInPixels().origin().ToString()); |
2405 EXPECT_EQ("100x200", host0->GetBoundsInPixels().size().ToString()); | 2396 EXPECT_EQ("100x200", host0->GetBoundsInPixels().size().ToString()); |
(...skipping 16 matching lines...) Expand all Loading... |
2422 EXPECT_EQ("300x400", host1->GetBoundsInPixels().size().ToString()); | 2413 EXPECT_EQ("300x400", host1->GetBoundsInPixels().size().ToString()); |
2423 | 2414 |
2424 UpdateDisplay("100+200-100x200,300+500-200x300"); | 2415 UpdateDisplay("100+200-100x200,300+500-200x300"); |
2425 ASSERT_EQ(2, display::Screen::GetScreen()->GetNumDisplays()); | 2416 ASSERT_EQ(2, display::Screen::GetScreen()->GetNumDisplays()); |
2426 EXPECT_EQ("100,200", host0->GetBoundsInPixels().origin().ToString()); | 2417 EXPECT_EQ("100,200", host0->GetBoundsInPixels().origin().ToString()); |
2427 EXPECT_EQ("100x200", host0->GetBoundsInPixels().size().ToString()); | 2418 EXPECT_EQ("100x200", host0->GetBoundsInPixels().size().ToString()); |
2428 EXPECT_EQ("300,500", host1->GetBoundsInPixels().origin().ToString()); | 2419 EXPECT_EQ("300,500", host1->GetBoundsInPixels().origin().ToString()); |
2429 EXPECT_EQ("200x300", host1->GetBoundsInPixels().size().ToString()); | 2420 EXPECT_EQ("200x300", host1->GetBoundsInPixels().size().ToString()); |
2430 } | 2421 } |
2431 | 2422 |
2432 TEST_P(DisplayManagerTest, UnifiedDesktopBasic) { | 2423 TEST_F(DisplayManagerTest, UnifiedDesktopBasic) { |
2433 // Don't check root window destruction in unified mode. | 2424 // Don't check root window destruction in unified mode. |
2434 Shell::GetPrimaryRootWindow()->RemoveObserver(this); | 2425 Shell::GetPrimaryRootWindow()->RemoveObserver(this); |
2435 | 2426 |
2436 UpdateDisplay("400x500,300x200"); | 2427 UpdateDisplay("400x500,300x200"); |
2437 | 2428 |
2438 // Enable after extended mode. | 2429 // Enable after extended mode. |
2439 display_manager()->SetUnifiedDesktopEnabled(true); | 2430 display_manager()->SetUnifiedDesktopEnabled(true); |
2440 | 2431 |
2441 // Defaults to the unified desktop. | 2432 // Defaults to the unified desktop. |
2442 display::Screen* screen = display::Screen::GetScreen(); | 2433 display::Screen* screen = display::Screen::GetScreen(); |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2481 EXPECT_EQ(gfx::Size(500, 300), screen->GetPrimaryDisplay().size()); | 2472 EXPECT_EQ(gfx::Size(500, 300), screen->GetPrimaryDisplay().size()); |
2482 EXPECT_EQ(gfx::Size(400, 500), | 2473 EXPECT_EQ(gfx::Size(400, 500), |
2483 display_manager()->GetSecondaryDisplay().size()); | 2474 display_manager()->GetSecondaryDisplay().size()); |
2484 EXPECT_EQ( | 2475 EXPECT_EQ( |
2485 gfx::Size(500, 300), | 2476 gfx::Size(500, 300), |
2486 display_manager() | 2477 display_manager() |
2487 ->GetDisplayForId(display_manager()->GetSecondaryDisplay().id() + 1) | 2478 ->GetDisplayForId(display_manager()->GetSecondaryDisplay().id() + 1) |
2488 .size()); | 2479 .size()); |
2489 } | 2480 } |
2490 | 2481 |
2491 TEST_P(DisplayManagerTest, UnifiedDesktopWithHardwareMirroring) { | 2482 TEST_F(DisplayManagerTest, UnifiedDesktopWithHardwareMirroring) { |
2492 // Don't check root window destruction in unified mode. | 2483 // Don't check root window destruction in unified mode. |
2493 Shell::GetPrimaryRootWindow()->RemoveObserver(this); | 2484 Shell::GetPrimaryRootWindow()->RemoveObserver(this); |
2494 | 2485 |
2495 // Enter to hardware mirroring. | 2486 // Enter to hardware mirroring. |
2496 display::ManagedDisplayInfo d1(1, "", false); | 2487 display::ManagedDisplayInfo d1(1, "", false); |
2497 d1.SetBounds(gfx::Rect(0, 0, 500, 500)); | 2488 d1.SetBounds(gfx::Rect(0, 0, 500, 500)); |
2498 display::ManagedDisplayInfo d2(2, "", false); | 2489 display::ManagedDisplayInfo d2(2, "", false); |
2499 d2.SetBounds(gfx::Rect(0, 0, 500, 500)); | 2490 d2.SetBounds(gfx::Rect(0, 0, 500, 500)); |
2500 std::vector<display::ManagedDisplayInfo> display_info_list; | 2491 std::vector<display::ManagedDisplayInfo> display_info_list; |
2501 display_info_list.push_back(d1); | 2492 display_info_list.push_back(d1); |
(...skipping 17 matching lines...) Expand all Loading... |
2519 // Exit from hardware mirroring. | 2510 // Exit from hardware mirroring. |
2520 d2.SetBounds(gfx::Rect(0, 500, 500, 500)); | 2511 d2.SetBounds(gfx::Rect(0, 500, 500, 500)); |
2521 display_info_list.clear(); | 2512 display_info_list.clear(); |
2522 display_info_list.push_back(d1); | 2513 display_info_list.push_back(d1); |
2523 display_info_list.push_back(d2); | 2514 display_info_list.push_back(d2); |
2524 display_manager()->OnNativeDisplaysChanged(display_info_list); | 2515 display_manager()->OnNativeDisplaysChanged(display_info_list); |
2525 EXPECT_FALSE(display_manager()->IsInMirrorMode()); | 2516 EXPECT_FALSE(display_manager()->IsInMirrorMode()); |
2526 EXPECT_TRUE(display_manager()->IsInUnifiedMode()); | 2517 EXPECT_TRUE(display_manager()->IsInUnifiedMode()); |
2527 } | 2518 } |
2528 | 2519 |
2529 TEST_P(DisplayManagerTest, UnifiedDesktopEnabledWithExtended) { | 2520 TEST_F(DisplayManagerTest, UnifiedDesktopEnabledWithExtended) { |
2530 // Don't check root window destruction in unified mode. | 2521 // Don't check root window destruction in unified mode. |
2531 Shell::GetPrimaryRootWindow()->RemoveObserver(this); | 2522 Shell::GetPrimaryRootWindow()->RemoveObserver(this); |
2532 | 2523 |
2533 UpdateDisplay("400x500,300x200"); | 2524 UpdateDisplay("400x500,300x200"); |
2534 display::DisplayIdList list = display_manager()->GetCurrentDisplayIdList(); | 2525 display::DisplayIdList list = display_manager()->GetCurrentDisplayIdList(); |
2535 display::DisplayLayoutBuilder builder( | 2526 display::DisplayLayoutBuilder builder( |
2536 display_manager()->layout_store()->GetRegisteredDisplayLayout(list)); | 2527 display_manager()->layout_store()->GetRegisteredDisplayLayout(list)); |
2537 builder.SetDefaultUnified(false); | 2528 builder.SetDefaultUnified(false); |
2538 display_manager()->layout_store()->RegisterLayoutForDisplayIdList( | 2529 display_manager()->layout_store()->RegisterLayoutForDisplayIdList( |
2539 list, builder.Build()); | 2530 list, builder.Build()); |
2540 display_manager()->SetUnifiedDesktopEnabled(true); | 2531 display_manager()->SetUnifiedDesktopEnabled(true); |
2541 EXPECT_FALSE(display_manager()->IsInUnifiedMode()); | 2532 EXPECT_FALSE(display_manager()->IsInUnifiedMode()); |
2542 } | 2533 } |
2543 | 2534 |
2544 TEST_P(DisplayManagerTest, UnifiedDesktopWith2xDSF) { | 2535 TEST_F(DisplayManagerTest, UnifiedDesktopWith2xDSF) { |
2545 // Don't check root window destruction in unified mode. | 2536 // Don't check root window destruction in unified mode. |
2546 Shell::GetPrimaryRootWindow()->RemoveObserver(this); | 2537 Shell::GetPrimaryRootWindow()->RemoveObserver(this); |
2547 | 2538 |
2548 display_manager()->SetUnifiedDesktopEnabled(true); | 2539 display_manager()->SetUnifiedDesktopEnabled(true); |
2549 display::Screen* screen = display::Screen::GetScreen(); | 2540 display::Screen* screen = display::Screen::GetScreen(); |
2550 | 2541 |
2551 // 2nd display is 2x. | 2542 // 2nd display is 2x. |
2552 UpdateDisplay("400x500,1000x800*2"); | 2543 UpdateDisplay("400x500,1000x800*2"); |
2553 display::ManagedDisplayInfo info = | 2544 display::ManagedDisplayInfo info = |
2554 display_manager()->GetDisplayInfo(screen->GetPrimaryDisplay().id()); | 2545 display_manager()->GetDisplayInfo(screen->GetPrimaryDisplay().id()); |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2636 EXPECT_EQ("1300x800", | 2627 EXPECT_EQ("1300x800", |
2637 Shell::GetPrimaryRootWindow()->bounds().size().ToString()); | 2628 Shell::GetPrimaryRootWindow()->bounds().size().ToString()); |
2638 accelerators::ZoomInternalDisplay(false); | 2629 accelerators::ZoomInternalDisplay(false); |
2639 EXPECT_EQ("650x400", screen->GetPrimaryDisplay().size().ToString()); | 2630 EXPECT_EQ("650x400", screen->GetPrimaryDisplay().size().ToString()); |
2640 EXPECT_EQ("650x400", | 2631 EXPECT_EQ("650x400", |
2641 Shell::GetPrimaryRootWindow()->bounds().size().ToString()); | 2632 Shell::GetPrimaryRootWindow()->bounds().size().ToString()); |
2642 } | 2633 } |
2643 | 2634 |
2644 // Updating displays again in unified desktop mode should not crash. | 2635 // Updating displays again in unified desktop mode should not crash. |
2645 // crbug.com/491094. | 2636 // crbug.com/491094. |
2646 TEST_P(DisplayManagerTest, ConfigureUnifiedTwice) { | 2637 TEST_F(DisplayManagerTest, ConfigureUnifiedTwice) { |
2647 // Don't check root window destruction in unified mode. | 2638 // Don't check root window destruction in unified mode. |
2648 Shell::GetPrimaryRootWindow()->RemoveObserver(this); | 2639 Shell::GetPrimaryRootWindow()->RemoveObserver(this); |
2649 | 2640 |
2650 UpdateDisplay("300x200,400x500"); | 2641 UpdateDisplay("300x200,400x500"); |
2651 // Mirror windows are created in a posted task. | 2642 // Mirror windows are created in a posted task. |
2652 RunAllPendingInMessageLoop(); | 2643 RunAllPendingInMessageLoop(); |
2653 | 2644 |
2654 UpdateDisplay("300x250,400x550"); | 2645 UpdateDisplay("300x250,400x550"); |
2655 RunAllPendingInMessageLoop(); | 2646 RunAllPendingInMessageLoop(); |
2656 } | 2647 } |
2657 | 2648 |
2658 TEST_P(DisplayManagerTest, NoRotateUnifiedDesktop) { | 2649 TEST_F(DisplayManagerTest, NoRotateUnifiedDesktop) { |
2659 display_manager()->SetUnifiedDesktopEnabled(true); | 2650 display_manager()->SetUnifiedDesktopEnabled(true); |
2660 | 2651 |
2661 // Don't check root window destruction in unified mode. | 2652 // Don't check root window destruction in unified mode. |
2662 Shell::GetPrimaryRootWindow()->RemoveObserver(this); | 2653 Shell::GetPrimaryRootWindow()->RemoveObserver(this); |
2663 | 2654 |
2664 UpdateDisplay("400x500,300x200"); | 2655 UpdateDisplay("400x500,300x200"); |
2665 | 2656 |
2666 display::Screen* screen = display::Screen::GetScreen(); | 2657 display::Screen* screen = display::Screen::GetScreen(); |
2667 const display::Display& display = screen->GetPrimaryDisplay(); | 2658 const display::Display& display = screen->GetPrimaryDisplay(); |
2668 EXPECT_EQ("1150x500", display.size().ToString()); | 2659 EXPECT_EQ("1150x500", display.size().ToString()); |
2669 display_manager()->SetDisplayRotation( | 2660 display_manager()->SetDisplayRotation( |
2670 display.id(), display::Display::ROTATE_90, | 2661 display.id(), display::Display::ROTATE_90, |
2671 display::Display::ROTATION_SOURCE_ACTIVE); | 2662 display::Display::ROTATION_SOURCE_ACTIVE); |
2672 EXPECT_EQ("1150x500", screen->GetPrimaryDisplay().size().ToString()); | 2663 EXPECT_EQ("1150x500", screen->GetPrimaryDisplay().size().ToString()); |
2673 display_manager()->SetDisplayRotation( | 2664 display_manager()->SetDisplayRotation( |
2674 display.id(), display::Display::ROTATE_0, | 2665 display.id(), display::Display::ROTATE_0, |
2675 display::Display::ROTATION_SOURCE_ACTIVE); | 2666 display::Display::ROTATION_SOURCE_ACTIVE); |
2676 EXPECT_EQ("1150x500", screen->GetPrimaryDisplay().size().ToString()); | 2667 EXPECT_EQ("1150x500", screen->GetPrimaryDisplay().size().ToString()); |
2677 | 2668 |
2678 UpdateDisplay("400x500"); | 2669 UpdateDisplay("400x500"); |
2679 EXPECT_EQ("400x500", screen->GetPrimaryDisplay().size().ToString()); | 2670 EXPECT_EQ("400x500", screen->GetPrimaryDisplay().size().ToString()); |
2680 } | 2671 } |
2681 | 2672 |
2682 // Makes sure the transition from unified to single won't crash | 2673 // Makes sure the transition from unified to single won't crash |
2683 // with docked windows. | 2674 // with docked windows. |
2684 TEST_P(DisplayManagerTest, UnifiedWithDockWindows) { | 2675 TEST_F(DisplayManagerTest, UnifiedWithDockWindows) { |
2685 // Enable window docking for this test. | 2676 // Enable window docking for this test. |
2686 base::CommandLine::ForCurrentProcess()->AppendSwitch( | 2677 base::CommandLine::ForCurrentProcess()->AppendSwitch( |
2687 ash::switches::kAshEnableDockedWindows); | 2678 ash::switches::kAshEnableDockedWindows); |
2688 | 2679 |
2689 const int height_offset = GetMdMaximizedWindowHeightOffset(); | |
2690 display_manager()->SetUnifiedDesktopEnabled(true); | 2680 display_manager()->SetUnifiedDesktopEnabled(true); |
2691 | 2681 |
2692 // Don't check root window destruction in unified mode. | 2682 // Don't check root window destruction in unified mode. |
2693 Shell::GetPrimaryRootWindow()->RemoveObserver(this); | 2683 Shell::GetPrimaryRootWindow()->RemoveObserver(this); |
2694 | 2684 |
2695 UpdateDisplay("400x500,300x200"); | 2685 UpdateDisplay("400x500,300x200"); |
2696 | 2686 |
2697 std::unique_ptr<aura::Window> docked( | 2687 std::unique_ptr<aura::Window> docked( |
2698 CreateTestWindowInShellWithBounds(gfx::Rect(10, 10, 50, 50))); | 2688 CreateTestWindowInShellWithBounds(gfx::Rect(10, 10, 50, 50))); |
2699 docked->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_DOCKED); | 2689 docked->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_DOCKED); |
2700 ASSERT_TRUE(wm::GetWindowState(docked.get())->IsDocked()); | 2690 ASSERT_TRUE(wm::GetWindowState(docked.get())->IsDocked()); |
2701 // 47 pixels reserved for launcher shelf height in non-material design, and | 2691 // 48 pixels reserved for launcher shelf height. |
2702 // 48 pixels reserved in material design. | 2692 EXPECT_EQ(gfx::Rect(0, 0, 250, 452).ToString(), docked->bounds().ToString()); |
2703 EXPECT_EQ(gfx::Rect(0, 0, 250, 453 + height_offset).ToString(), | |
2704 docked->bounds().ToString()); | |
2705 UpdateDisplay("300x300"); | 2693 UpdateDisplay("300x300"); |
2706 // Make sure the window is still docked. | 2694 // Make sure the window is still docked. |
2707 EXPECT_TRUE(wm::GetWindowState(docked.get())->IsDocked()); | 2695 EXPECT_TRUE(wm::GetWindowState(docked.get())->IsDocked()); |
2708 EXPECT_EQ(gfx::Rect(0, 0, 250, 253 + height_offset).ToString(), | 2696 EXPECT_EQ(gfx::Rect(0, 0, 250, 252).ToString(), docked->bounds().ToString()); |
2709 docked->bounds().ToString()); | |
2710 } | 2697 } |
2711 | 2698 |
2712 TEST_P(DisplayManagerTest, DockMode) { | 2699 TEST_F(DisplayManagerTest, DockMode) { |
2713 const int64_t internal_id = 1; | 2700 const int64_t internal_id = 1; |
2714 const int64_t external_id = 2; | 2701 const int64_t external_id = 2; |
2715 | 2702 |
2716 const display::ManagedDisplayInfo internal_display_info = | 2703 const display::ManagedDisplayInfo internal_display_info = |
2717 CreateDisplayInfo(internal_id, gfx::Rect(0, 0, 500, 500)); | 2704 CreateDisplayInfo(internal_id, gfx::Rect(0, 0, 500, 500)); |
2718 const display::ManagedDisplayInfo external_display_info = | 2705 const display::ManagedDisplayInfo external_display_info = |
2719 CreateDisplayInfo(external_id, gfx::Rect(1, 1, 100, 100)); | 2706 CreateDisplayInfo(external_id, gfx::Rect(1, 1, 100, 100)); |
2720 std::vector<display::ManagedDisplayInfo> display_info_list; | 2707 std::vector<display::ManagedDisplayInfo> display_info_list; |
2721 | 2708 |
2722 // software mirroring. | 2709 // software mirroring. |
(...skipping 13 matching lines...) Expand all Loading... |
2736 EXPECT_TRUE(display_manager()->IsActiveDisplayId(external_id)); | 2723 EXPECT_TRUE(display_manager()->IsActiveDisplayId(external_id)); |
2737 EXPECT_FALSE(display_manager()->IsActiveDisplayId(internal_id)); | 2724 EXPECT_FALSE(display_manager()->IsActiveDisplayId(internal_id)); |
2738 | 2725 |
2739 EXPECT_FALSE(display_manager()->ZoomInternalDisplay(true)); | 2726 EXPECT_FALSE(display_manager()->ZoomInternalDisplay(true)); |
2740 EXPECT_FALSE(display_manager()->ZoomInternalDisplay(false)); | 2727 EXPECT_FALSE(display_manager()->ZoomInternalDisplay(false)); |
2741 EXPECT_FALSE(display::test::DisplayManagerTestApi(display_manager()) | 2728 EXPECT_FALSE(display::test::DisplayManagerTestApi(display_manager()) |
2742 .SetDisplayUIScale(internal_id, 1.0f)); | 2729 .SetDisplayUIScale(internal_id, 1.0f)); |
2743 } | 2730 } |
2744 | 2731 |
2745 // Make sure that bad layout information is ignored and does not crash. | 2732 // Make sure that bad layout information is ignored and does not crash. |
2746 TEST_P(DisplayManagerTest, DontRegisterBadConfig) { | 2733 TEST_F(DisplayManagerTest, DontRegisterBadConfig) { |
2747 display::DisplayIdList list = display::test::CreateDisplayIdList2(1, 2); | 2734 display::DisplayIdList list = display::test::CreateDisplayIdList2(1, 2); |
2748 display::DisplayLayoutBuilder builder(1); | 2735 display::DisplayLayoutBuilder builder(1); |
2749 builder.AddDisplayPlacement(2, 1, display::DisplayPlacement::LEFT, 0); | 2736 builder.AddDisplayPlacement(2, 1, display::DisplayPlacement::LEFT, 0); |
2750 builder.AddDisplayPlacement(3, 1, display::DisplayPlacement::BOTTOM, 0); | 2737 builder.AddDisplayPlacement(3, 1, display::DisplayPlacement::BOTTOM, 0); |
2751 | 2738 |
2752 display_manager()->layout_store()->RegisterLayoutForDisplayIdList( | 2739 display_manager()->layout_store()->RegisterLayoutForDisplayIdList( |
2753 list, builder.Build()); | 2740 list, builder.Build()); |
2754 } | 2741 } |
2755 | 2742 |
2756 class ScreenShutdownTest : public test::AshTestBase { | 2743 class ScreenShutdownTest : public test::AshTestBase { |
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2900 .SetDisplayUIScale(display::Screen::GetScreen()->GetPrimaryDisplay().id(), | 2887 .SetDisplayUIScale(display::Screen::GetScreen()->GetPrimaryDisplay().id(), |
2901 0.8f); | 2888 0.8f); |
2902 | 2889 |
2903 ASSERT_DOUBLE_EQ( | 2890 ASSERT_DOUBLE_EQ( |
2904 1.25f, | 2891 1.25f, |
2905 display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); | 2892 display::Screen::GetScreen()->GetPrimaryDisplay().device_scale_factor()); |
2906 EXPECT_TRUE(IsTextSubpixelPositioningEnabled()); | 2893 EXPECT_TRUE(IsTextSubpixelPositioningEnabled()); |
2907 EXPECT_EQ(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); | 2894 EXPECT_EQ(gfx::FontRenderParams::HINTING_NONE, GetFontHintingParams()); |
2908 } | 2895 } |
2909 | 2896 |
2910 TEST_P(DisplayManagerTest, CheckInitializationOfRotationProperty) { | 2897 TEST_F(DisplayManagerTest, CheckInitializationOfRotationProperty) { |
2911 int64_t id = display_manager()->GetDisplayAt(0).id(); | 2898 int64_t id = display_manager()->GetDisplayAt(0).id(); |
2912 display_manager()->RegisterDisplayProperty( | 2899 display_manager()->RegisterDisplayProperty( |
2913 id, display::Display::ROTATE_90, 1.0f, nullptr, gfx::Size(), 1.0f, | 2900 id, display::Display::ROTATE_90, 1.0f, nullptr, gfx::Size(), 1.0f, |
2914 display::COLOR_PROFILE_STANDARD, nullptr); | 2901 display::COLOR_PROFILE_STANDARD, nullptr); |
2915 | 2902 |
2916 const display::ManagedDisplayInfo& info = | 2903 const display::ManagedDisplayInfo& info = |
2917 display_manager()->GetDisplayInfo(id); | 2904 display_manager()->GetDisplayInfo(id); |
2918 | 2905 |
2919 EXPECT_EQ(display::Display::ROTATE_90, | 2906 EXPECT_EQ(display::Display::ROTATE_90, |
2920 info.GetRotation(display::Display::ROTATION_SOURCE_USER)); | 2907 info.GetRotation(display::Display::ROTATION_SOURCE_USER)); |
2921 EXPECT_EQ(display::Display::ROTATE_90, | 2908 EXPECT_EQ(display::Display::ROTATE_90, |
2922 info.GetRotation(display::Display::ROTATION_SOURCE_ACTIVE)); | 2909 info.GetRotation(display::Display::ROTATION_SOURCE_ACTIVE)); |
2923 } | 2910 } |
2924 | 2911 |
2925 TEST_P(DisplayManagerTest, RejectInvalidLayoutData) { | 2912 TEST_F(DisplayManagerTest, RejectInvalidLayoutData) { |
2926 display::DisplayLayoutStore* layout_store = display_manager()->layout_store(); | 2913 display::DisplayLayoutStore* layout_store = display_manager()->layout_store(); |
2927 int64_t id1 = 10001; | 2914 int64_t id1 = 10001; |
2928 int64_t id2 = 10002; | 2915 int64_t id2 = 10002; |
2929 ASSERT_TRUE(display::CompareDisplayIds(id1, id2)); | 2916 ASSERT_TRUE(display::CompareDisplayIds(id1, id2)); |
2930 display::DisplayLayoutBuilder good_builder(id1); | 2917 display::DisplayLayoutBuilder good_builder(id1); |
2931 good_builder.SetSecondaryPlacement(id2, display::DisplayPlacement::LEFT, 0); | 2918 good_builder.SetSecondaryPlacement(id2, display::DisplayPlacement::LEFT, 0); |
2932 std::unique_ptr<display::DisplayLayout> good(good_builder.Build()); | 2919 std::unique_ptr<display::DisplayLayout> good(good_builder.Build()); |
2933 | 2920 |
2934 display::DisplayIdList good_list = | 2921 display::DisplayIdList good_list = |
2935 display::test::CreateDisplayIdList2(id1, id2); | 2922 display::test::CreateDisplayIdList2(id1, id2); |
2936 layout_store->RegisterLayoutForDisplayIdList(good_list, good->Copy()); | 2923 layout_store->RegisterLayoutForDisplayIdList(good_list, good->Copy()); |
2937 | 2924 |
2938 display::DisplayLayoutBuilder bad(id1); | 2925 display::DisplayLayoutBuilder bad(id1); |
2939 bad.SetSecondaryPlacement(id2, display::DisplayPlacement::BOTTOM, 0); | 2926 bad.SetSecondaryPlacement(id2, display::DisplayPlacement::BOTTOM, 0); |
2940 | 2927 |
2941 display::DisplayIdList bad_list(2); | 2928 display::DisplayIdList bad_list(2); |
2942 bad_list[0] = id2; | 2929 bad_list[0] = id2; |
2943 bad_list[1] = id1; | 2930 bad_list[1] = id1; |
2944 layout_store->RegisterLayoutForDisplayIdList(bad_list, bad.Build()); | 2931 layout_store->RegisterLayoutForDisplayIdList(bad_list, bad.Build()); |
2945 | 2932 |
2946 EXPECT_EQ(good->ToString(), | 2933 EXPECT_EQ(good->ToString(), |
2947 layout_store->GetRegisteredDisplayLayout(good_list).ToString()); | 2934 layout_store->GetRegisteredDisplayLayout(good_list).ToString()); |
2948 } | 2935 } |
2949 | 2936 |
2950 TEST_P(DisplayManagerTest, GuessDisplayIdFieldsInDisplayLayout) { | 2937 TEST_F(DisplayManagerTest, GuessDisplayIdFieldsInDisplayLayout) { |
2951 int64_t id1 = 10001; | 2938 int64_t id1 = 10001; |
2952 int64_t id2 = 10002; | 2939 int64_t id2 = 10002; |
2953 | 2940 |
2954 std::unique_ptr<display::DisplayLayout> old_layout( | 2941 std::unique_ptr<display::DisplayLayout> old_layout( |
2955 new display::DisplayLayout); | 2942 new display::DisplayLayout); |
2956 old_layout->placement_list.emplace_back(display::DisplayPlacement::BOTTOM, 0); | 2943 old_layout->placement_list.emplace_back(display::DisplayPlacement::BOTTOM, 0); |
2957 old_layout->primary_id = id1; | 2944 old_layout->primary_id = id1; |
2958 | 2945 |
2959 display::DisplayLayoutStore* layout_store = display_manager()->layout_store(); | 2946 display::DisplayLayoutStore* layout_store = display_manager()->layout_store(); |
2960 display::DisplayIdList list = display::test::CreateDisplayIdList2(id1, id2); | 2947 display::DisplayIdList list = display::test::CreateDisplayIdList2(id1, id2); |
2961 layout_store->RegisterLayoutForDisplayIdList(list, std::move(old_layout)); | 2948 layout_store->RegisterLayoutForDisplayIdList(list, std::move(old_layout)); |
2962 const display::DisplayLayout& stored = | 2949 const display::DisplayLayout& stored = |
2963 layout_store->GetRegisteredDisplayLayout(list); | 2950 layout_store->GetRegisteredDisplayLayout(list); |
2964 | 2951 |
2965 EXPECT_EQ(id1, stored.placement_list[0].parent_display_id); | 2952 EXPECT_EQ(id1, stored.placement_list[0].parent_display_id); |
2966 EXPECT_EQ(id2, stored.placement_list[0].display_id); | 2953 EXPECT_EQ(id2, stored.placement_list[0].display_id); |
2967 } | 2954 } |
2968 | 2955 |
2969 } // namespace ash | 2956 } // namespace ash |
OLD | NEW |