OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 "ui/views/widget/desktop_aura/desktop_screen_x11.h" | 5 #include "ui/views/widget/desktop_aura/desktop_screen_x11.h" |
6 | 6 |
7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
9 #include "ui/aura/client/aura_constants.h" | 9 #include "ui/aura/client/aura_constants.h" |
10 #include "ui/aura/test/event_generator.h" | 10 #include "ui/aura/test/event_generator.h" |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
72 ViewsTestBase::TearDown(); | 72 ViewsTestBase::TearDown(); |
73 } | 73 } |
74 | 74 |
75 protected: | 75 protected: |
76 std::vector<gfx::Display> changed_display_; | 76 std::vector<gfx::Display> changed_display_; |
77 std::vector<gfx::Display> added_display_; | 77 std::vector<gfx::Display> added_display_; |
78 std::vector<gfx::Display> removed_display_; | 78 std::vector<gfx::Display> removed_display_; |
79 | 79 |
80 DesktopScreenX11* screen() { return screen_.get(); } | 80 DesktopScreenX11* screen() { return screen_.get(); } |
81 | 81 |
| 82 void NotifyDisplaysChanged(const std::vector<gfx::Display>& displays) { |
| 83 DesktopScreenX11* screen = screen_.get(); |
| 84 screen->change_notifier_.NotifyDisplaysChanged(screen->displays_, displays); |
| 85 screen->displays_ = displays; |
| 86 } |
| 87 |
82 void ResetDisplayChanges() { | 88 void ResetDisplayChanges() { |
83 changed_display_.clear(); | 89 changed_display_.clear(); |
84 added_display_.clear(); | 90 added_display_.clear(); |
85 removed_display_.clear(); | 91 removed_display_.clear(); |
86 } | 92 } |
87 | 93 |
88 Widget* BuildTopLevelDesktopWidget(const gfx::Rect& bounds, | 94 Widget* BuildTopLevelDesktopWidget(const gfx::Rect& bounds, |
89 bool use_test_native_widget) { | 95 bool use_test_native_widget) { |
90 Widget* toplevel = new Widget; | 96 Widget* toplevel = new Widget; |
91 Widget::InitParams toplevel_params = | 97 Widget::InitParams toplevel_params = |
(...skipping 27 matching lines...) Expand all Loading... |
119 } | 125 } |
120 | 126 |
121 scoped_ptr<DesktopScreenX11> screen_; | 127 scoped_ptr<DesktopScreenX11> screen_; |
122 | 128 |
123 DISALLOW_COPY_AND_ASSIGN(DesktopScreenX11Test); | 129 DISALLOW_COPY_AND_ASSIGN(DesktopScreenX11Test); |
124 }; | 130 }; |
125 | 131 |
126 TEST_F(DesktopScreenX11Test, BoundsChangeSingleMonitor) { | 132 TEST_F(DesktopScreenX11Test, BoundsChangeSingleMonitor) { |
127 std::vector<gfx::Display> displays; | 133 std::vector<gfx::Display> displays; |
128 displays.push_back(gfx::Display(kFirstDisplay, gfx::Rect(0, 0, 1024, 768))); | 134 displays.push_back(gfx::Display(kFirstDisplay, gfx::Rect(0, 0, 1024, 768))); |
129 screen()->ProcessDisplayChange(displays); | 135 NotifyDisplaysChanged(displays); |
130 | 136 |
131 EXPECT_EQ(1u, changed_display_.size()); | 137 EXPECT_EQ(1u, changed_display_.size()); |
132 EXPECT_EQ(0u, added_display_.size()); | 138 EXPECT_EQ(0u, added_display_.size()); |
133 EXPECT_EQ(0u, removed_display_.size()); | 139 EXPECT_EQ(0u, removed_display_.size()); |
134 } | 140 } |
135 | 141 |
136 TEST_F(DesktopScreenX11Test, AddMonitorToTheRight) { | 142 TEST_F(DesktopScreenX11Test, AddMonitorToTheRight) { |
137 std::vector<gfx::Display> displays; | 143 std::vector<gfx::Display> displays; |
138 displays.push_back(gfx::Display(kFirstDisplay, gfx::Rect(0, 0, 640, 480))); | 144 displays.push_back(gfx::Display(kFirstDisplay, gfx::Rect(0, 0, 640, 480))); |
139 displays.push_back(gfx::Display(kSecondDisplay, | 145 displays.push_back(gfx::Display(kSecondDisplay, |
140 gfx::Rect(640, 0, 1024, 768))); | 146 gfx::Rect(640, 0, 1024, 768))); |
141 screen()->ProcessDisplayChange(displays); | 147 NotifyDisplaysChanged(displays); |
142 | 148 |
143 EXPECT_EQ(0u, changed_display_.size()); | 149 EXPECT_EQ(0u, changed_display_.size()); |
144 EXPECT_EQ(1u, added_display_.size()); | 150 EXPECT_EQ(1u, added_display_.size()); |
145 EXPECT_EQ(0u, removed_display_.size()); | 151 EXPECT_EQ(0u, removed_display_.size()); |
146 } | 152 } |
147 | 153 |
148 TEST_F(DesktopScreenX11Test, AddMonitorToTheLeft) { | 154 TEST_F(DesktopScreenX11Test, AddMonitorToTheLeft) { |
149 std::vector<gfx::Display> displays; | 155 std::vector<gfx::Display> displays; |
150 displays.push_back(gfx::Display(kSecondDisplay, gfx::Rect(0, 0, 1024, 768))); | 156 displays.push_back(gfx::Display(kSecondDisplay, gfx::Rect(0, 0, 1024, 768))); |
151 displays.push_back(gfx::Display(kFirstDisplay, gfx::Rect(1024, 0, 640, 480))); | 157 displays.push_back(gfx::Display(kFirstDisplay, gfx::Rect(1024, 0, 640, 480))); |
152 screen()->ProcessDisplayChange(displays); | 158 NotifyDisplaysChanged(displays); |
153 | 159 |
154 EXPECT_EQ(1u, changed_display_.size()); | 160 EXPECT_EQ(1u, changed_display_.size()); |
155 EXPECT_EQ(1u, added_display_.size()); | 161 EXPECT_EQ(1u, added_display_.size()); |
156 EXPECT_EQ(0u, removed_display_.size()); | 162 EXPECT_EQ(0u, removed_display_.size()); |
157 } | 163 } |
158 | 164 |
159 TEST_F(DesktopScreenX11Test, RemoveMonitorOnRight) { | 165 TEST_F(DesktopScreenX11Test, RemoveMonitorOnRight) { |
160 std::vector<gfx::Display> displays; | 166 std::vector<gfx::Display> displays; |
161 displays.push_back(gfx::Display(kFirstDisplay, gfx::Rect(0, 0, 640, 480))); | 167 displays.push_back(gfx::Display(kFirstDisplay, gfx::Rect(0, 0, 640, 480))); |
162 displays.push_back(gfx::Display(kSecondDisplay, | 168 displays.push_back(gfx::Display(kSecondDisplay, |
163 gfx::Rect(640, 0, 1024, 768))); | 169 gfx::Rect(640, 0, 1024, 768))); |
164 screen()->ProcessDisplayChange(displays); | 170 NotifyDisplaysChanged(displays); |
165 | 171 |
166 ResetDisplayChanges(); | 172 ResetDisplayChanges(); |
167 | 173 |
168 displays.clear(); | 174 displays.clear(); |
169 displays.push_back(gfx::Display(kFirstDisplay, gfx::Rect(0, 0, 640, 480))); | 175 displays.push_back(gfx::Display(kFirstDisplay, gfx::Rect(0, 0, 640, 480))); |
170 screen()->ProcessDisplayChange(displays); | 176 NotifyDisplaysChanged(displays); |
171 | 177 |
172 EXPECT_EQ(0u, changed_display_.size()); | 178 EXPECT_EQ(0u, changed_display_.size()); |
173 EXPECT_EQ(0u, added_display_.size()); | 179 EXPECT_EQ(0u, added_display_.size()); |
174 EXPECT_EQ(1u, removed_display_.size()); | 180 EXPECT_EQ(1u, removed_display_.size()); |
175 } | 181 } |
176 | 182 |
177 TEST_F(DesktopScreenX11Test, RemoveMonitorOnLeft) { | 183 TEST_F(DesktopScreenX11Test, RemoveMonitorOnLeft) { |
178 std::vector<gfx::Display> displays; | 184 std::vector<gfx::Display> displays; |
179 displays.push_back(gfx::Display(kFirstDisplay, gfx::Rect(0, 0, 640, 480))); | 185 displays.push_back(gfx::Display(kFirstDisplay, gfx::Rect(0, 0, 640, 480))); |
180 displays.push_back(gfx::Display(kSecondDisplay, | 186 displays.push_back(gfx::Display(kSecondDisplay, |
181 gfx::Rect(640, 0, 1024, 768))); | 187 gfx::Rect(640, 0, 1024, 768))); |
182 screen()->ProcessDisplayChange(displays); | 188 NotifyDisplaysChanged(displays); |
183 | 189 |
184 ResetDisplayChanges(); | 190 ResetDisplayChanges(); |
185 | 191 |
186 displays.clear(); | 192 displays.clear(); |
187 displays.push_back(gfx::Display(kSecondDisplay, gfx::Rect(0, 0, 1024, 768))); | 193 displays.push_back(gfx::Display(kSecondDisplay, gfx::Rect(0, 0, 1024, 768))); |
188 screen()->ProcessDisplayChange(displays); | 194 NotifyDisplaysChanged(displays); |
189 | 195 |
190 EXPECT_EQ(1u, changed_display_.size()); | 196 EXPECT_EQ(1u, changed_display_.size()); |
191 EXPECT_EQ(0u, added_display_.size()); | 197 EXPECT_EQ(0u, added_display_.size()); |
192 EXPECT_EQ(1u, removed_display_.size()); | 198 EXPECT_EQ(1u, removed_display_.size()); |
193 } | 199 } |
194 | 200 |
195 TEST_F(DesktopScreenX11Test, GetDisplayNearestPoint) { | 201 TEST_F(DesktopScreenX11Test, GetDisplayNearestPoint) { |
196 std::vector<gfx::Display> displays; | 202 std::vector<gfx::Display> displays; |
197 displays.push_back(gfx::Display(kFirstDisplay, gfx::Rect(0, 0, 640, 480))); | 203 displays.push_back(gfx::Display(kFirstDisplay, gfx::Rect(0, 0, 640, 480))); |
198 displays.push_back(gfx::Display(kSecondDisplay, | 204 displays.push_back(gfx::Display(kSecondDisplay, |
199 gfx::Rect(640, 0, 1024, 768))); | 205 gfx::Rect(640, 0, 1024, 768))); |
200 screen()->ProcessDisplayChange(displays); | 206 NotifyDisplaysChanged(displays); |
201 | 207 |
202 EXPECT_EQ(kSecondDisplay, | 208 EXPECT_EQ(kSecondDisplay, |
203 screen()->GetDisplayNearestPoint(gfx::Point(650, 10)).id()); | 209 screen()->GetDisplayNearestPoint(gfx::Point(650, 10)).id()); |
204 EXPECT_EQ(kFirstDisplay, | 210 EXPECT_EQ(kFirstDisplay, |
205 screen()->GetDisplayNearestPoint(gfx::Point(10, 10)).id()); | 211 screen()->GetDisplayNearestPoint(gfx::Point(10, 10)).id()); |
206 EXPECT_EQ(kFirstDisplay, | 212 EXPECT_EQ(kFirstDisplay, |
207 screen()->GetDisplayNearestPoint(gfx::Point(10000, 10000)).id()); | 213 screen()->GetDisplayNearestPoint(gfx::Point(10000, 10000)).id()); |
208 } | 214 } |
209 | 215 |
210 TEST_F(DesktopScreenX11Test, GetDisplayMatchingBasic) { | 216 TEST_F(DesktopScreenX11Test, GetDisplayMatchingBasic) { |
211 std::vector<gfx::Display> displays; | 217 std::vector<gfx::Display> displays; |
212 displays.push_back(gfx::Display(kFirstDisplay, gfx::Rect(0, 0, 640, 480))); | 218 displays.push_back(gfx::Display(kFirstDisplay, gfx::Rect(0, 0, 640, 480))); |
213 displays.push_back(gfx::Display(kSecondDisplay, | 219 displays.push_back(gfx::Display(kSecondDisplay, |
214 gfx::Rect(640, 0, 1024, 768))); | 220 gfx::Rect(640, 0, 1024, 768))); |
215 screen()->ProcessDisplayChange(displays); | 221 NotifyDisplaysChanged(displays); |
216 | 222 |
217 EXPECT_EQ(kSecondDisplay, | 223 EXPECT_EQ(kSecondDisplay, |
218 screen()->GetDisplayMatching(gfx::Rect(700, 20, 100, 100)).id()); | 224 screen()->GetDisplayMatching(gfx::Rect(700, 20, 100, 100)).id()); |
219 } | 225 } |
220 | 226 |
221 TEST_F(DesktopScreenX11Test, GetDisplayMatchingOverlap) { | 227 TEST_F(DesktopScreenX11Test, GetDisplayMatchingOverlap) { |
222 std::vector<gfx::Display> displays; | 228 std::vector<gfx::Display> displays; |
223 displays.push_back(gfx::Display(kFirstDisplay, gfx::Rect(0, 0, 640, 480))); | 229 displays.push_back(gfx::Display(kFirstDisplay, gfx::Rect(0, 0, 640, 480))); |
224 displays.push_back(gfx::Display(kSecondDisplay, | 230 displays.push_back(gfx::Display(kSecondDisplay, |
225 gfx::Rect(640, 0, 1024, 768))); | 231 gfx::Rect(640, 0, 1024, 768))); |
226 screen()->ProcessDisplayChange(displays); | 232 NotifyDisplaysChanged(displays); |
227 | 233 |
228 EXPECT_EQ(kSecondDisplay, | 234 EXPECT_EQ(kSecondDisplay, |
229 screen()->GetDisplayMatching(gfx::Rect(630, 20, 100, 100)).id()); | 235 screen()->GetDisplayMatching(gfx::Rect(630, 20, 100, 100)).id()); |
230 } | 236 } |
231 | 237 |
232 TEST_F(DesktopScreenX11Test, GetPrimaryDisplay) { | 238 TEST_F(DesktopScreenX11Test, GetPrimaryDisplay) { |
233 std::vector<gfx::Display> displays; | 239 std::vector<gfx::Display> displays; |
234 displays.push_back(gfx::Display(kFirstDisplay, | 240 displays.push_back(gfx::Display(kFirstDisplay, |
235 gfx::Rect(640, 0, 1024, 768))); | 241 gfx::Rect(640, 0, 1024, 768))); |
236 displays.push_back(gfx::Display(kSecondDisplay, gfx::Rect(0, 0, 640, 480))); | 242 displays.push_back(gfx::Display(kSecondDisplay, gfx::Rect(0, 0, 640, 480))); |
237 screen()->ProcessDisplayChange(displays); | 243 NotifyDisplaysChanged(displays); |
238 | 244 |
239 // The first display in the list is always the primary, even if other | 245 // The first display in the list is always the primary, even if other |
240 // displays are to the left in screen layout. | 246 // displays are to the left in screen layout. |
241 EXPECT_EQ(kFirstDisplay, screen()->GetPrimaryDisplay().id()); | 247 EXPECT_EQ(kFirstDisplay, screen()->GetPrimaryDisplay().id()); |
242 } | 248 } |
243 | 249 |
244 TEST_F(DesktopScreenX11Test, GetDisplayNearestWindow) { | 250 TEST_F(DesktopScreenX11Test, GetDisplayNearestWindow) { |
245 // Set up a two monitor situation. | 251 // Set up a two monitor situation. |
246 std::vector<gfx::Display> displays; | 252 std::vector<gfx::Display> displays; |
247 displays.push_back(gfx::Display(kFirstDisplay, gfx::Rect(0, 0, 640, 480))); | 253 displays.push_back(gfx::Display(kFirstDisplay, gfx::Rect(0, 0, 640, 480))); |
248 displays.push_back(gfx::Display(kSecondDisplay, | 254 displays.push_back(gfx::Display(kSecondDisplay, |
249 gfx::Rect(640, 0, 1024, 768))); | 255 gfx::Rect(640, 0, 1024, 768))); |
250 screen()->ProcessDisplayChange(displays); | 256 NotifyDisplaysChanged(displays); |
251 | 257 |
252 Widget* window_one = BuildTopLevelDesktopWidget(gfx::Rect(10, 10, 10, 10), | 258 Widget* window_one = BuildTopLevelDesktopWidget(gfx::Rect(10, 10, 10, 10), |
253 false); | 259 false); |
254 Widget* window_two = BuildTopLevelDesktopWidget(gfx::Rect(650, 50, 10, 10), | 260 Widget* window_two = BuildTopLevelDesktopWidget(gfx::Rect(650, 50, 10, 10), |
255 false); | 261 false); |
256 | 262 |
257 EXPECT_EQ( | 263 EXPECT_EQ( |
258 kFirstDisplay, | 264 kFirstDisplay, |
259 screen()->GetDisplayNearestWindow(window_one->GetNativeWindow()).id()); | 265 screen()->GetDisplayNearestWindow(window_one->GetNativeWindow()).id()); |
260 EXPECT_EQ( | 266 EXPECT_EQ( |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
350 | 356 |
351 widget->CloseNow(); | 357 widget->CloseNow(); |
352 } | 358 } |
353 | 359 |
354 // Test that rotating the displays notifies the DisplayObservers. | 360 // Test that rotating the displays notifies the DisplayObservers. |
355 TEST_F(DesktopScreenX11Test, RotationChange) { | 361 TEST_F(DesktopScreenX11Test, RotationChange) { |
356 std::vector<gfx::Display> displays; | 362 std::vector<gfx::Display> displays; |
357 displays.push_back(gfx::Display(kFirstDisplay, gfx::Rect(0, 0, 640, 480))); | 363 displays.push_back(gfx::Display(kFirstDisplay, gfx::Rect(0, 0, 640, 480))); |
358 displays.push_back( | 364 displays.push_back( |
359 gfx::Display(kSecondDisplay, gfx::Rect(640, 0, 1024, 768))); | 365 gfx::Display(kSecondDisplay, gfx::Rect(640, 0, 1024, 768))); |
360 screen()->ProcessDisplayChange(displays); | 366 NotifyDisplaysChanged(displays); |
361 ResetDisplayChanges(); | 367 ResetDisplayChanges(); |
362 | 368 |
363 displays[0].set_rotation(gfx::Display::ROTATE_90); | 369 displays[0].set_rotation(gfx::Display::ROTATE_90); |
364 screen()->ProcessDisplayChange(displays); | 370 NotifyDisplaysChanged(displays); |
365 EXPECT_EQ(1u, changed_display_.size()); | 371 EXPECT_EQ(1u, changed_display_.size()); |
366 | 372 |
367 displays[1].set_rotation(gfx::Display::ROTATE_90); | 373 displays[1].set_rotation(gfx::Display::ROTATE_90); |
368 screen()->ProcessDisplayChange(displays); | 374 NotifyDisplaysChanged(displays); |
369 EXPECT_EQ(2u, changed_display_.size()); | 375 EXPECT_EQ(2u, changed_display_.size()); |
370 | 376 |
371 displays[0].set_rotation(gfx::Display::ROTATE_270); | 377 displays[0].set_rotation(gfx::Display::ROTATE_270); |
372 screen()->ProcessDisplayChange(displays); | 378 NotifyDisplaysChanged(displays); |
373 EXPECT_EQ(3u, changed_display_.size()); | 379 EXPECT_EQ(3u, changed_display_.size()); |
374 | 380 |
375 displays[0].set_rotation(gfx::Display::ROTATE_270); | 381 displays[0].set_rotation(gfx::Display::ROTATE_270); |
376 screen()->ProcessDisplayChange(displays); | 382 NotifyDisplaysChanged(displays); |
377 EXPECT_EQ(3u, changed_display_.size()); | 383 EXPECT_EQ(3u, changed_display_.size()); |
378 | 384 |
379 displays[0].set_rotation(gfx::Display::ROTATE_0); | 385 displays[0].set_rotation(gfx::Display::ROTATE_0); |
380 displays[1].set_rotation(gfx::Display::ROTATE_0); | 386 displays[1].set_rotation(gfx::Display::ROTATE_0); |
381 screen()->ProcessDisplayChange(displays); | 387 NotifyDisplaysChanged(displays); |
382 EXPECT_EQ(5u, changed_display_.size()); | 388 EXPECT_EQ(5u, changed_display_.size()); |
383 } | 389 } |
384 | 390 |
385 // Test that changing the displays workarea notifies the DisplayObservers. | 391 // Test that changing the displays workarea notifies the DisplayObservers. |
386 TEST_F(DesktopScreenX11Test, WorkareaChange) { | 392 TEST_F(DesktopScreenX11Test, WorkareaChange) { |
387 std::vector<gfx::Display> displays; | 393 std::vector<gfx::Display> displays; |
388 displays.push_back(gfx::Display(kFirstDisplay, gfx::Rect(0, 0, 640, 480))); | 394 displays.push_back(gfx::Display(kFirstDisplay, gfx::Rect(0, 0, 640, 480))); |
389 displays.push_back( | 395 displays.push_back( |
390 gfx::Display(kSecondDisplay, gfx::Rect(640, 0, 1024, 768))); | 396 gfx::Display(kSecondDisplay, gfx::Rect(640, 0, 1024, 768))); |
391 screen()->ProcessDisplayChange(displays); | 397 NotifyDisplaysChanged(displays); |
392 ResetDisplayChanges(); | 398 ResetDisplayChanges(); |
393 | 399 |
394 displays[0].set_work_area(gfx::Rect(0, 0, 300, 300)); | 400 displays[0].set_work_area(gfx::Rect(0, 0, 300, 300)); |
395 screen()->ProcessDisplayChange(displays); | 401 NotifyDisplaysChanged(displays); |
396 EXPECT_EQ(1u, changed_display_.size()); | 402 EXPECT_EQ(1u, changed_display_.size()); |
397 | 403 |
398 displays[1].set_work_area(gfx::Rect(0, 0, 300, 300)); | 404 displays[1].set_work_area(gfx::Rect(0, 0, 300, 300)); |
399 screen()->ProcessDisplayChange(displays); | 405 NotifyDisplaysChanged(displays); |
400 EXPECT_EQ(2u, changed_display_.size()); | 406 EXPECT_EQ(2u, changed_display_.size()); |
401 | 407 |
402 displays[0].set_work_area(gfx::Rect(0, 0, 300, 300)); | 408 displays[0].set_work_area(gfx::Rect(0, 0, 300, 300)); |
403 screen()->ProcessDisplayChange(displays); | 409 NotifyDisplaysChanged(displays); |
404 EXPECT_EQ(2u, changed_display_.size()); | 410 EXPECT_EQ(2u, changed_display_.size()); |
405 | 411 |
406 displays[1].set_work_area(gfx::Rect(0, 0, 300, 300)); | 412 displays[1].set_work_area(gfx::Rect(0, 0, 300, 300)); |
407 screen()->ProcessDisplayChange(displays); | 413 NotifyDisplaysChanged(displays); |
408 EXPECT_EQ(2u, changed_display_.size()); | 414 EXPECT_EQ(2u, changed_display_.size()); |
409 | 415 |
410 displays[0].set_work_area(gfx::Rect(0, 0, 640, 480)); | 416 displays[0].set_work_area(gfx::Rect(0, 0, 640, 480)); |
411 displays[1].set_work_area(gfx::Rect(640, 0, 1024, 768)); | 417 displays[1].set_work_area(gfx::Rect(640, 0, 1024, 768)); |
412 screen()->ProcessDisplayChange(displays); | 418 NotifyDisplaysChanged(displays); |
413 EXPECT_EQ(4u, changed_display_.size()); | 419 EXPECT_EQ(4u, changed_display_.size()); |
414 } | 420 } |
415 | 421 |
416 // Test that changing the device scale factor notifies the DisplayObservers. | 422 // Test that changing the device scale factor notifies the DisplayObservers. |
417 TEST_F(DesktopScreenX11Test, DeviceScaleFactorChange) { | 423 TEST_F(DesktopScreenX11Test, DeviceScaleFactorChange) { |
418 std::vector<gfx::Display> displays; | 424 std::vector<gfx::Display> displays; |
419 displays.push_back(gfx::Display(kFirstDisplay, gfx::Rect(0, 0, 640, 480))); | 425 displays.push_back(gfx::Display(kFirstDisplay, gfx::Rect(0, 0, 640, 480))); |
420 displays.push_back( | 426 displays.push_back( |
421 gfx::Display(kSecondDisplay, gfx::Rect(640, 0, 1024, 768))); | 427 gfx::Display(kSecondDisplay, gfx::Rect(640, 0, 1024, 768))); |
422 screen()->ProcessDisplayChange(displays); | 428 NotifyDisplaysChanged(displays); |
423 ResetDisplayChanges(); | 429 ResetDisplayChanges(); |
424 | 430 |
425 displays[0].set_device_scale_factor(2.5f); | 431 displays[0].set_device_scale_factor(2.5f); |
426 screen()->ProcessDisplayChange(displays); | 432 NotifyDisplaysChanged(displays); |
427 EXPECT_EQ(1u, changed_display_.size()); | 433 EXPECT_EQ(1u, changed_display_.size()); |
428 | 434 |
429 displays[1].set_device_scale_factor(2.5f); | 435 displays[1].set_device_scale_factor(2.5f); |
430 screen()->ProcessDisplayChange(displays); | 436 NotifyDisplaysChanged(displays); |
431 EXPECT_EQ(2u, changed_display_.size()); | 437 EXPECT_EQ(2u, changed_display_.size()); |
432 | 438 |
433 displays[0].set_device_scale_factor(2.5f); | 439 displays[0].set_device_scale_factor(2.5f); |
434 screen()->ProcessDisplayChange(displays); | 440 NotifyDisplaysChanged(displays); |
435 EXPECT_EQ(2u, changed_display_.size()); | 441 EXPECT_EQ(2u, changed_display_.size()); |
436 | 442 |
437 displays[1].set_device_scale_factor(2.5f); | 443 displays[1].set_device_scale_factor(2.5f); |
438 screen()->ProcessDisplayChange(displays); | 444 NotifyDisplaysChanged(displays); |
439 EXPECT_EQ(2u, changed_display_.size()); | 445 EXPECT_EQ(2u, changed_display_.size()); |
440 | 446 |
441 displays[0].set_device_scale_factor(1.f); | 447 displays[0].set_device_scale_factor(1.f); |
442 displays[1].set_device_scale_factor(1.f); | 448 displays[1].set_device_scale_factor(1.f); |
443 screen()->ProcessDisplayChange(displays); | 449 NotifyDisplaysChanged(displays); |
444 EXPECT_EQ(4u, changed_display_.size()); | 450 EXPECT_EQ(4u, changed_display_.size()); |
445 } | 451 } |
446 | 452 |
447 } // namespace views | 453 } // namespace views |
OLD | NEW |