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

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

Issue 1019623002: Remove DisplayState from the public interface for DisplayConfigurator (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Updated Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ash/display/display_change_observer_chromeos.h" 5 #include "ash/display/display_change_observer_chromeos.h"
6 6
7 #include "ash/display/display_info.h" 7 #include "ash/display/display_info.h"
8 #include "base/memory/scoped_vector.h" 8 #include "base/memory/scoped_vector.h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 #include "ui/display/chromeos/display_configurator.h" 10 #include "ui/display/chromeos/display_configurator.h"
(...skipping 26 matching lines...) Expand all
37 // Mixed. 37 // Mixed.
38 modes.push_back(new ui::DisplayMode(gfx::Size(1024, 600), true, 60)); 38 modes.push_back(new ui::DisplayMode(gfx::Size(1024, 600), true, 60));
39 modes.push_back(new ui::DisplayMode(gfx::Size(1024, 600), false, 70)); 39 modes.push_back(new ui::DisplayMode(gfx::Size(1024, 600), false, 70));
40 modes.push_back(new ui::DisplayMode(gfx::Size(1024, 600), false, 60)); 40 modes.push_back(new ui::DisplayMode(gfx::Size(1024, 600), false, 60));
41 41
42 // Just one interlaced mode. 42 // Just one interlaced mode.
43 modes.push_back(new ui::DisplayMode(gfx::Size(640, 480), true, 60)); 43 modes.push_back(new ui::DisplayMode(gfx::Size(640, 480), true, 60));
44 44
45 ui::TestDisplaySnapshot display_snapshot; 45 ui::TestDisplaySnapshot display_snapshot;
46 display_snapshot.set_modes(modes.get()); 46 display_snapshot.set_modes(modes.get());
47 DisplayConfigurator::DisplayState output;
48 output.display = &display_snapshot;
49 47
50 std::vector<DisplayMode> display_modes = 48 std::vector<DisplayMode> display_modes =
51 DisplayChangeObserver::GetExternalDisplayModeList(output); 49 DisplayChangeObserver::GetExternalDisplayModeList(display_snapshot);
52 ASSERT_EQ(6u, display_modes.size()); 50 ASSERT_EQ(6u, display_modes.size());
53 EXPECT_EQ("640x480", display_modes[0].size.ToString()); 51 EXPECT_EQ("640x480", display_modes[0].size.ToString());
54 EXPECT_TRUE(display_modes[0].interlaced); 52 EXPECT_TRUE(display_modes[0].interlaced);
55 EXPECT_EQ(display_modes[0].refresh_rate, 60); 53 EXPECT_EQ(display_modes[0].refresh_rate, 60);
56 54
57 EXPECT_EQ("1024x600", display_modes[1].size.ToString()); 55 EXPECT_EQ("1024x600", display_modes[1].size.ToString());
58 EXPECT_FALSE(display_modes[1].interlaced); 56 EXPECT_FALSE(display_modes[1].interlaced);
59 EXPECT_EQ(display_modes[1].refresh_rate, 70); 57 EXPECT_EQ(display_modes[1].refresh_rate, 70);
60 58
61 EXPECT_EQ("1024x768", display_modes[2].size.ToString()); 59 EXPECT_EQ("1024x768", display_modes[2].size.ToString());
62 EXPECT_TRUE(display_modes[2].interlaced); 60 EXPECT_TRUE(display_modes[2].interlaced);
63 EXPECT_EQ(display_modes[2].refresh_rate, 70); 61 EXPECT_EQ(display_modes[2].refresh_rate, 70);
64 62
65 EXPECT_EQ("1280x720", display_modes[3].size.ToString()); 63 EXPECT_EQ("1280x720", display_modes[3].size.ToString());
66 EXPECT_FALSE(display_modes[3].interlaced); 64 EXPECT_FALSE(display_modes[3].interlaced);
67 EXPECT_EQ(display_modes[3].refresh_rate, 60); 65 EXPECT_EQ(display_modes[3].refresh_rate, 60);
68 66
69 EXPECT_EQ("1920x1080", display_modes[4].size.ToString()); 67 EXPECT_EQ("1920x1080", display_modes[4].size.ToString());
70 EXPECT_FALSE(display_modes[4].interlaced); 68 EXPECT_FALSE(display_modes[4].interlaced);
71 EXPECT_EQ(display_modes[4].refresh_rate, 80); 69 EXPECT_EQ(display_modes[4].refresh_rate, 80);
72 70
73 EXPECT_EQ("1920x1200", display_modes[5].size.ToString()); 71 EXPECT_EQ("1920x1200", display_modes[5].size.ToString());
74 EXPECT_FALSE(display_modes[5].interlaced); 72 EXPECT_FALSE(display_modes[5].interlaced);
75 EXPECT_EQ(display_modes[5].refresh_rate, 60); 73 EXPECT_EQ(display_modes[5].refresh_rate, 60);
76 74
77 // Outputs without any modes shouldn't cause a crash. 75 // Outputs without any modes shouldn't cause a crash.
78 modes.clear(); 76 modes.clear();
79 display_snapshot.set_modes(modes.get()); 77 display_snapshot.set_modes(modes.get());
80 78
81 display_modes = DisplayChangeObserver::GetExternalDisplayModeList(output); 79 display_modes =
80 DisplayChangeObserver::GetExternalDisplayModeList(display_snapshot);
82 EXPECT_EQ(0u, display_modes.size()); 81 EXPECT_EQ(0u, display_modes.size());
83 } 82 }
84 83
85 TEST_F(DisplayChangeObserverTest, GetInternalDisplayModeList) { 84 TEST_F(DisplayChangeObserverTest, GetInternalDisplayModeList) {
86 ScopedVector<const ui::DisplayMode> modes; 85 ScopedVector<const ui::DisplayMode> modes;
87 // Data picked from peppy. 86 // Data picked from peppy.
88 modes.push_back(new ui::DisplayMode(gfx::Size(1366, 768), false, 60)); 87 modes.push_back(new ui::DisplayMode(gfx::Size(1366, 768), false, 60));
89 modes.push_back(new ui::DisplayMode(gfx::Size(1024, 768), false, 60)); 88 modes.push_back(new ui::DisplayMode(gfx::Size(1024, 768), false, 60));
90 modes.push_back(new ui::DisplayMode(gfx::Size(800, 600), false, 60)); 89 modes.push_back(new ui::DisplayMode(gfx::Size(800, 600), false, 60));
91 modes.push_back(new ui::DisplayMode(gfx::Size(600, 600), false, 56.2)); 90 modes.push_back(new ui::DisplayMode(gfx::Size(600, 600), false, 56.2));
92 modes.push_back(new ui::DisplayMode(gfx::Size(640, 480), false, 59.9)); 91 modes.push_back(new ui::DisplayMode(gfx::Size(640, 480), false, 59.9));
93 92
94 ui::TestDisplaySnapshot display_snapshot; 93 ui::TestDisplaySnapshot display_snapshot;
95 display_snapshot.set_modes(modes.get()); 94 display_snapshot.set_modes(modes.get());
96 display_snapshot.set_native_mode(modes[0]); 95 display_snapshot.set_native_mode(modes[0]);
97 DisplayConfigurator::DisplayState output;
98 output.display = &display_snapshot;
99 96
100 DisplayInfo info; 97 DisplayInfo info;
101 info.SetBounds(gfx::Rect(0, 0, 1366, 768)); 98 info.SetBounds(gfx::Rect(0, 0, 1366, 768));
102 99
103 std::vector<DisplayMode> display_modes = 100 std::vector<DisplayMode> display_modes =
104 DisplayChangeObserver::GetInternalDisplayModeList(info, output); 101 DisplayChangeObserver::GetInternalDisplayModeList(info, display_snapshot);
105 ASSERT_EQ(5u, display_modes.size()); 102 ASSERT_EQ(5u, display_modes.size());
106 EXPECT_EQ("1366x768", display_modes[0].size.ToString()); 103 EXPECT_EQ("1366x768", display_modes[0].size.ToString());
107 EXPECT_FALSE(display_modes[0].native); 104 EXPECT_FALSE(display_modes[0].native);
108 EXPECT_NEAR(display_modes[0].ui_scale, 0.5, 0.01); 105 EXPECT_NEAR(display_modes[0].ui_scale, 0.5, 0.01);
109 EXPECT_EQ(display_modes[0].refresh_rate, 60); 106 EXPECT_EQ(display_modes[0].refresh_rate, 60);
110 107
111 EXPECT_EQ("1366x768", display_modes[1].size.ToString()); 108 EXPECT_EQ("1366x768", display_modes[1].size.ToString());
112 EXPECT_FALSE(display_modes[1].native); 109 EXPECT_FALSE(display_modes[1].native);
113 EXPECT_NEAR(display_modes[1].ui_scale, 0.6, 0.01); 110 EXPECT_NEAR(display_modes[1].ui_scale, 0.6, 0.01);
114 EXPECT_EQ(display_modes[1].refresh_rate, 60); 111 EXPECT_EQ(display_modes[1].refresh_rate, 60);
(...skipping 17 matching lines...) Expand all
132 TEST_F(DisplayChangeObserverTest, GetInternalHiDPIDisplayModeList) { 129 TEST_F(DisplayChangeObserverTest, GetInternalHiDPIDisplayModeList) {
133 ScopedVector<const ui::DisplayMode> modes; 130 ScopedVector<const ui::DisplayMode> modes;
134 // Data picked from peppy. 131 // Data picked from peppy.
135 modes.push_back(new ui::DisplayMode(gfx::Size(2560, 1700), false, 60)); 132 modes.push_back(new ui::DisplayMode(gfx::Size(2560, 1700), false, 60));
136 modes.push_back(new ui::DisplayMode(gfx::Size(2048, 1536), false, 60)); 133 modes.push_back(new ui::DisplayMode(gfx::Size(2048, 1536), false, 60));
137 modes.push_back(new ui::DisplayMode(gfx::Size(1920, 1440), false, 60)); 134 modes.push_back(new ui::DisplayMode(gfx::Size(1920, 1440), false, 60));
138 135
139 ui::TestDisplaySnapshot display_snapshot; 136 ui::TestDisplaySnapshot display_snapshot;
140 display_snapshot.set_modes(modes.get()); 137 display_snapshot.set_modes(modes.get());
141 display_snapshot.set_native_mode(modes[0]); 138 display_snapshot.set_native_mode(modes[0]);
142 DisplayConfigurator::DisplayState output;
143 output.display = &display_snapshot;
144 139
145 DisplayInfo info; 140 DisplayInfo info;
146 info.SetBounds(gfx::Rect(0, 0, 2560, 1700)); 141 info.SetBounds(gfx::Rect(0, 0, 2560, 1700));
147 info.set_device_scale_factor(2.0f); 142 info.set_device_scale_factor(2.0f);
148 143
149 std::vector<DisplayMode> display_modes = 144 std::vector<DisplayMode> display_modes =
150 DisplayChangeObserver::GetInternalDisplayModeList(info, output); 145 DisplayChangeObserver::GetInternalDisplayModeList(info, display_snapshot);
151 ASSERT_EQ(8u, display_modes.size()); 146 ASSERT_EQ(8u, display_modes.size());
152 EXPECT_EQ("2560x1700", display_modes[0].size.ToString()); 147 EXPECT_EQ("2560x1700", display_modes[0].size.ToString());
153 EXPECT_FALSE(display_modes[0].native); 148 EXPECT_FALSE(display_modes[0].native);
154 EXPECT_NEAR(display_modes[0].ui_scale, 0.5, 0.01); 149 EXPECT_NEAR(display_modes[0].ui_scale, 0.5, 0.01);
155 EXPECT_EQ(display_modes[0].refresh_rate, 60); 150 EXPECT_EQ(display_modes[0].refresh_rate, 60);
156 151
157 EXPECT_EQ("2560x1700", display_modes[1].size.ToString()); 152 EXPECT_EQ("2560x1700", display_modes[1].size.ToString());
158 EXPECT_FALSE(display_modes[1].native); 153 EXPECT_FALSE(display_modes[1].native);
159 EXPECT_NEAR(display_modes[1].ui_scale, 0.625, 0.01); 154 EXPECT_NEAR(display_modes[1].ui_scale, 0.625, 0.01);
160 EXPECT_EQ(display_modes[1].refresh_rate, 60); 155 EXPECT_EQ(display_modes[1].refresh_rate, 60);
(...skipping 30 matching lines...) Expand all
191 } 186 }
192 187
193 TEST_F(DisplayChangeObserverTest, GetInternalDisplayModeList1_25) { 188 TEST_F(DisplayChangeObserverTest, GetInternalDisplayModeList1_25) {
194 ScopedVector<const ui::DisplayMode> modes; 189 ScopedVector<const ui::DisplayMode> modes;
195 // Data picked from peppy. 190 // Data picked from peppy.
196 modes.push_back(new ui::DisplayMode(gfx::Size(1920, 1080), false, 60)); 191 modes.push_back(new ui::DisplayMode(gfx::Size(1920, 1080), false, 60));
197 192
198 ui::TestDisplaySnapshot display_snapshot; 193 ui::TestDisplaySnapshot display_snapshot;
199 display_snapshot.set_modes(modes.get()); 194 display_snapshot.set_modes(modes.get());
200 display_snapshot.set_native_mode(modes[0]); 195 display_snapshot.set_native_mode(modes[0]);
201 DisplayConfigurator::DisplayState output;
202 output.display = &display_snapshot;
203 196
204 DisplayInfo info; 197 DisplayInfo info;
205 info.SetBounds(gfx::Rect(0, 0, 1920, 1080)); 198 info.SetBounds(gfx::Rect(0, 0, 1920, 1080));
206 info.set_device_scale_factor(1.25); 199 info.set_device_scale_factor(1.25);
207 200
208 std::vector<DisplayMode> display_modes = 201 std::vector<DisplayMode> display_modes =
209 DisplayChangeObserver::GetInternalDisplayModeList(info, output); 202 DisplayChangeObserver::GetInternalDisplayModeList(info, display_snapshot);
210 ASSERT_EQ(5u, display_modes.size()); 203 ASSERT_EQ(5u, display_modes.size());
211 EXPECT_EQ("1920x1080", display_modes[0].size.ToString()); 204 EXPECT_EQ("1920x1080", display_modes[0].size.ToString());
212 EXPECT_FALSE(display_modes[0].native); 205 EXPECT_FALSE(display_modes[0].native);
213 EXPECT_NEAR(display_modes[0].ui_scale, 0.5, 0.01); 206 EXPECT_NEAR(display_modes[0].ui_scale, 0.5, 0.01);
214 EXPECT_EQ(display_modes[0].refresh_rate, 60); 207 EXPECT_EQ(display_modes[0].refresh_rate, 60);
215 208
216 EXPECT_EQ("1920x1080", display_modes[1].size.ToString()); 209 EXPECT_EQ("1920x1080", display_modes[1].size.ToString());
217 EXPECT_FALSE(display_modes[1].native); 210 EXPECT_FALSE(display_modes[1].native);
218 EXPECT_NEAR(display_modes[1].ui_scale, 0.625, 0.01); 211 EXPECT_NEAR(display_modes[1].ui_scale, 0.625, 0.01);
219 EXPECT_EQ(display_modes[1].refresh_rate, 60); 212 EXPECT_EQ(display_modes[1].refresh_rate, 60);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 modes.push_back(new ui::DisplayMode(gfx::Size(1024, 600), true, 60)); 249 modes.push_back(new ui::DisplayMode(gfx::Size(1024, 600), true, 60));
257 modes.push_back(new ui::DisplayMode(gfx::Size(1024, 600), false, 70)); 250 modes.push_back(new ui::DisplayMode(gfx::Size(1024, 600), false, 70));
258 modes.push_back(new ui::DisplayMode(gfx::Size(1024, 600), false, 60)); 251 modes.push_back(new ui::DisplayMode(gfx::Size(1024, 600), false, 60));
259 252
260 // Just one interlaced mode. 253 // Just one interlaced mode.
261 modes.push_back(new ui::DisplayMode(gfx::Size(640, 480), true, 60)); 254 modes.push_back(new ui::DisplayMode(gfx::Size(640, 480), true, 60));
262 255
263 ui::TestDisplaySnapshot display_snapshot; 256 ui::TestDisplaySnapshot display_snapshot;
264 display_snapshot.set_modes(modes.get()); 257 display_snapshot.set_modes(modes.get());
265 display_snapshot.set_native_mode(modes[0]); 258 display_snapshot.set_native_mode(modes[0]);
266 DisplayConfigurator::DisplayState output;
267 output.display = &display_snapshot;
268 259
269 std::vector<DisplayMode> display_modes = 260 std::vector<DisplayMode> display_modes =
270 DisplayChangeObserver::GetExternalDisplayModeList(output); 261 DisplayChangeObserver::GetExternalDisplayModeList(display_snapshot);
271 DisplayInfo info; 262 DisplayInfo info;
272 info.SetDisplayModes(display_modes); // Sort as external display. 263 info.SetDisplayModes(display_modes); // Sort as external display.
273 display_modes = info.display_modes(); 264 display_modes = info.display_modes();
274 265
275 ASSERT_EQ(9u, display_modes.size()); 266 ASSERT_EQ(9u, display_modes.size());
276 EXPECT_EQ("640x480", display_modes[0].size.ToString()); 267 EXPECT_EQ("640x480", display_modes[0].size.ToString());
277 EXPECT_TRUE(display_modes[0].interlaced); 268 EXPECT_TRUE(display_modes[0].interlaced);
278 EXPECT_EQ(display_modes[0].refresh_rate, 60); 269 EXPECT_EQ(display_modes[0].refresh_rate, 60);
279 270
280 EXPECT_EQ("1024x600", display_modes[1].size.ToString()); 271 EXPECT_EQ("1024x600", display_modes[1].size.ToString());
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 EXPECT_EQ("3840x2160", display_modes[8].size.ToString()); 303 EXPECT_EQ("3840x2160", display_modes[8].size.ToString());
313 EXPECT_FALSE(display_modes[8].interlaced); 304 EXPECT_FALSE(display_modes[8].interlaced);
314 EXPECT_TRUE(display_modes[8].native); 305 EXPECT_TRUE(display_modes[8].native);
315 EXPECT_EQ(display_modes[8].refresh_rate, 30); 306 EXPECT_EQ(display_modes[8].refresh_rate, 30);
316 307
317 // Outputs without any modes shouldn't cause a crash. 308 // Outputs without any modes shouldn't cause a crash.
318 modes.clear(); 309 modes.clear();
319 display_snapshot.set_modes(modes.get()); 310 display_snapshot.set_modes(modes.get());
320 display_snapshot.set_native_mode(NULL); 311 display_snapshot.set_native_mode(NULL);
321 312
322 display_modes = DisplayChangeObserver::GetExternalDisplayModeList(output); 313 display_modes =
314 DisplayChangeObserver::GetExternalDisplayModeList(display_snapshot);
323 EXPECT_EQ(0u, display_modes.size()); 315 EXPECT_EQ(0u, display_modes.size());
324 } 316 }
325 317
326 namespace { 318 namespace {
327 319
328 float ComputeDeviceScaleFactor(float diagonal_inch, 320 float ComputeDeviceScaleFactor(float diagonal_inch,
329 const gfx::Rect& resolution) { 321 const gfx::Rect& resolution) {
330 // We assume that displays have square pixel. 322 // We assume that displays have square pixel.
331 float diagonal_pixel = std::sqrt(std::pow(resolution.width(), 2) + 323 float diagonal_pixel = std::sqrt(std::pow(resolution.width(), 2) +
332 std::pow(resolution.height(), 2)); 324 std::pow(resolution.height(), 2));
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
365 357
366 TEST_F(DisplayChangeObserverTest, 358 TEST_F(DisplayChangeObserverTest,
367 FindExternalDisplayNativeModeWhenOverwritten) { 359 FindExternalDisplayNativeModeWhenOverwritten) {
368 ScopedVector<const ui::DisplayMode> modes; 360 ScopedVector<const ui::DisplayMode> modes;
369 modes.push_back(new ui::DisplayMode(gfx::Size(1920, 1080), true, 60)); 361 modes.push_back(new ui::DisplayMode(gfx::Size(1920, 1080), true, 60));
370 modes.push_back(new ui::DisplayMode(gfx::Size(1920, 1080), false, 60)); 362 modes.push_back(new ui::DisplayMode(gfx::Size(1920, 1080), false, 60));
371 363
372 ui::TestDisplaySnapshot display_snapshot; 364 ui::TestDisplaySnapshot display_snapshot;
373 display_snapshot.set_modes(modes.get()); 365 display_snapshot.set_modes(modes.get());
374 display_snapshot.set_native_mode(modes[0]); 366 display_snapshot.set_native_mode(modes[0]);
375 DisplayConfigurator::DisplayState output;
376 output.display = &display_snapshot;
377 367
378 std::vector<DisplayMode> display_modes = 368 std::vector<DisplayMode> display_modes =
379 DisplayChangeObserver::GetExternalDisplayModeList(output); 369 DisplayChangeObserver::GetExternalDisplayModeList(display_snapshot);
380 ASSERT_EQ(2u, display_modes.size()); 370 ASSERT_EQ(2u, display_modes.size());
381 EXPECT_EQ("1920x1080", display_modes[0].size.ToString()); 371 EXPECT_EQ("1920x1080", display_modes[0].size.ToString());
382 EXPECT_FALSE(display_modes[0].interlaced); 372 EXPECT_FALSE(display_modes[0].interlaced);
383 EXPECT_FALSE(display_modes[0].native); 373 EXPECT_FALSE(display_modes[0].native);
384 EXPECT_EQ(display_modes[0].refresh_rate, 60); 374 EXPECT_EQ(display_modes[0].refresh_rate, 60);
385 375
386 EXPECT_EQ("1920x1080", display_modes[1].size.ToString()); 376 EXPECT_EQ("1920x1080", display_modes[1].size.ToString());
387 EXPECT_TRUE(display_modes[1].interlaced); 377 EXPECT_TRUE(display_modes[1].interlaced);
388 EXPECT_TRUE(display_modes[1].native); 378 EXPECT_TRUE(display_modes[1].native);
389 EXPECT_EQ(display_modes[1].refresh_rate, 60); 379 EXPECT_EQ(display_modes[1].refresh_rate, 60);
390 } 380 }
391 381
392 } // namespace ash 382 } // namespace ash
OLDNEW
« no previous file with comments | « ash/display/display_change_observer_chromeos.cc ('k') | ash/display/projecting_observer_chromeos.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698